mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-08 11:33:49 -05:00
Compare commits
103 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3dad5887e | ||
|
|
8775ffe76c | ||
|
|
823dd3cef9 | ||
|
|
8d93ccae39 | ||
|
|
734d6323d8 | ||
|
|
c9514d8e8e | ||
|
|
e98a0b489f | ||
|
|
0173299078 | ||
|
|
850a74c5cd | ||
|
|
4c6b0e9c3b | ||
|
|
330e3fc130 | ||
|
|
2aff0df76d | ||
|
|
2acb2296e5 | ||
|
|
04b440df0b | ||
|
|
5d80be09cb | ||
|
|
e0504fc2f8 | ||
|
|
51937ccc19 | ||
|
|
ac2f882aab | ||
|
|
25c966eb4f | ||
|
|
c6973391f3 | ||
|
|
38421ba6aa | ||
|
|
a1edb81e8e | ||
|
|
5f7892f728 | ||
|
|
86be59a6d5 | ||
|
|
dc873cf568 | ||
|
|
aef6a2a6d0 | ||
|
|
527d8fab3e | ||
|
|
fc0e27c24b | ||
|
|
a2ad48aa40 | ||
|
|
d04a081dcb | ||
|
|
cb83169098 | ||
|
|
3bdb9bd1e7 | ||
|
|
cc40a3f965 | ||
|
|
25e70b2c80 | ||
|
|
4c90a3147f | ||
|
|
ee84e89ef1 | ||
|
|
a39449bc50 | ||
|
|
3bc0d858cc | ||
|
|
0f8b2b2b84 | ||
|
|
c424717a39 | ||
|
|
81632f0ab4 | ||
|
|
a79440470e | ||
|
|
84037dff4e | ||
|
|
a7a0354da9 | ||
|
|
6140619301 | ||
|
|
61c0f25ef5 | ||
|
|
1e8e96b8a2 | ||
|
|
707e8d1ef8 | ||
|
|
04b32e2d46 | ||
|
|
6393a4dfce | ||
|
|
b0d6a67881 | ||
|
|
d64d1aa1e0 | ||
|
|
96b3fb2fc3 | ||
|
|
7f60ef0b54 | ||
|
|
37ad06f7ce | ||
|
|
6711e9a21d | ||
|
|
f3e288c6ad | ||
|
|
770eb66ec8 | ||
|
|
630b3700ad | ||
|
|
fb9880e460 | ||
|
|
050f88c78b | ||
|
|
3ced1c4751 | ||
|
|
03b60aafec | ||
|
|
6a7ecfe409 | ||
|
|
d201daeb33 | ||
|
|
468dc81107 | ||
|
|
5180c3cfb5 | ||
|
|
95917cb753 | ||
|
|
55134ea1a1 | ||
|
|
3f2ef9e00a | ||
|
|
62fc392515 | ||
|
|
d8f5b583bd | ||
|
|
6517caf583 | ||
|
|
9c40f0b67e | ||
|
|
d60d1c5cdc | ||
|
|
1cabb6e02b | ||
|
|
2e658d3e35 | ||
|
|
d8c8338cd8 | ||
|
|
ac5c87e044 | ||
|
|
b123520826 | ||
|
|
5fcd9d7a4f | ||
|
|
669d1f1038 | ||
|
|
57a6772451 | ||
|
|
9ecd803bff | ||
|
|
11efbdce46 | ||
|
|
9e7010b72f | ||
|
|
6511ce26cd | ||
|
|
9b09a7efc9 | ||
|
|
f17809c4b9 | ||
|
|
ae5ee4de26 | ||
|
|
e9611beffe | ||
|
|
e44b12c2dc | ||
|
|
9373970678 | ||
|
|
88f76ee787 | ||
|
|
e396561661 | ||
|
|
cdd97d8c30 | ||
|
|
adf3c2bccf | ||
|
|
50e726ac41 | ||
|
|
662b5ddd13 | ||
|
|
d81eebf8d1 | ||
|
|
b11728c284 | ||
|
|
bc6a0db677 | ||
|
|
4b60ddd06d |
2
.github/workflows/macos_build.yml
vendored
2
.github/workflows/macos_build.yml
vendored
@@ -10,11 +10,11 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version:
|
python-version:
|
||||||
- "3.8"
|
|
||||||
- "3.9"
|
- "3.9"
|
||||||
- "3.10"
|
- "3.10"
|
||||||
- "3.11"
|
- "3.11"
|
||||||
- "3.12"
|
- "3.12"
|
||||||
|
- "3.13"
|
||||||
runs-on: macos-14
|
runs-on: macos-14
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|||||||
132
.github/workflows/modified_scripts_build.yml
vendored
132
.github/workflows/modified_scripts_build.yml
vendored
@@ -19,10 +19,16 @@ jobs:
|
|||||||
echo "versions<<$EOF" >> $GITHUB_ENV;
|
echo "versions<<$EOF" >> $GITHUB_ENV;
|
||||||
echo "$versions" >> $GITHUB_ENV;
|
echo "$versions" >> $GITHUB_ENV;
|
||||||
echo "$EOF" >> $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
|
- id: modified-versions
|
||||||
run: |
|
run: |
|
||||||
echo -n "::set-output name=versions::"
|
echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT
|
||||||
echo "${{ env.versions }}" | jq -R . | jq -sc .
|
echo "versions_cpython_only=`echo "${{ env.versions_cpython_only }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT
|
||||||
macos_build:
|
macos_build:
|
||||||
needs: discover_modified_scripts
|
needs: discover_modified_scripts
|
||||||
if: needs.discover_modified_scripts.outputs.versions != '[""]'
|
if: needs.discover_modified_scripts.outputs.versions != '[""]'
|
||||||
@@ -83,6 +89,67 @@ jobs:
|
|||||||
pyenv global system
|
pyenv global system
|
||||||
rm -f "$(pyenv root)"/shims/*
|
rm -f "$(pyenv root)"/shims/*
|
||||||
|
|
||||||
|
macos_build_bundled_dependencies:
|
||||||
|
needs: discover_modified_scripts
|
||||||
|
if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]'
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}}
|
||||||
|
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:
|
ubuntu_build:
|
||||||
needs: discover_modified_scripts
|
needs: discover_modified_scripts
|
||||||
if: needs.discover_modified_scripts.outputs.versions != '[""]'
|
if: needs.discover_modified_scripts.outputs.versions != '[""]'
|
||||||
@@ -90,7 +157,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}}
|
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 }}
|
runs-on: ${{ matrix.os }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -141,3 +208,62 @@ jobs:
|
|||||||
"bin")
|
"bin")
|
||||||
assert os.path.dirname(sys.executable) == correct_dir'
|
assert os.path.dirname(sys.executable) == correct_dir'
|
||||||
fi
|
fi
|
||||||
|
ubuntu_build_tar_gz:
|
||||||
|
needs: discover_modified_scripts
|
||||||
|
if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]'
|
||||||
|
strategy:
|
||||||
|
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"]
|
||||||
|
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
|
||||||
|
|||||||
1
.github/workflows/pyenv_tests.yml
vendored
1
.github/workflows/pyenv_tests.yml
vendored
@@ -10,6 +10,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os:
|
os:
|
||||||
|
- ubuntu-24.04
|
||||||
- ubuntu-22.04
|
- ubuntu-22.04
|
||||||
- ubuntu-20.04
|
- ubuntu-20.04
|
||||||
- macos-14
|
- macos-14
|
||||||
|
|||||||
11
.github/workflows/scripts/brew-uninstall-cascade.sh
vendored
Executable file
11
.github/workflows/scripts/brew-uninstall-cascade.sh
vendored
Executable file
@@ -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[@]}"
|
||||||
4
.github/workflows/ubuntu_build.yml
vendored
4
.github/workflows/ubuntu_build.yml
vendored
@@ -10,12 +10,12 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
python-version:
|
python-version:
|
||||||
- "3.8"
|
|
||||||
- "3.9"
|
- "3.9"
|
||||||
- "3.10"
|
- "3.10"
|
||||||
- "3.11"
|
- "3.11"
|
||||||
- "3.12"
|
- "3.12"
|
||||||
runs-on: ubuntu-22.04
|
- "3.13"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
# Normally, we would use the superbly maintained...
|
# Normally, we would use the superbly maintained...
|
||||||
|
|||||||
103
CHANGELOG.md
103
CHANGELOG.md
@@ -1,5 +1,108 @@
|
|||||||
# Version History
|
# 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
|
||||||
|
* 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 - <shell>` 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
|
||||||
|
* 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
|
||||||
|
* 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
* 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
## 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
|
||||||
|
* 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/
|
||||||
|
|
||||||
## Release v2.4.6
|
## Release v2.4.6
|
||||||
* CI: push MacOS jobs to MacOS 13 and 14 by @native-api in https://github.com/pyenv/pyenv/pull/3002
|
* 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
|
* Add 3.13.0b3t and exclude it from `pyenv latest` by @colesbury in https://github.com/pyenv/pyenv/pull/3001
|
||||||
|
|||||||
@@ -91,6 +91,10 @@ or, if you prefer 3.3.3 over 2.7.6,
|
|||||||
Python 3.3.3
|
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`
|
## `pyenv global`
|
||||||
|
|
||||||
Sets the global version of Python to be used in all shells by writing
|
Sets the global version of Python to be used in all shells by writing
|
||||||
|
|||||||
@@ -4,12 +4,14 @@ Creating a release
|
|||||||
The release of the new version of Pyenv is done via GitHub Releases.
|
The release of the new version of Pyenv is done via GitHub Releases.
|
||||||
|
|
||||||
Release checklist:
|
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)
|
* 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`
|
||||||
* Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases).
|
* 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
|
* 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`
|
* 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 tag locally with the same name as specified in the new release window
|
||||||
* Create a new release on GitHub based on the tag, using the saved summary
|
* Push the changes including the tag
|
||||||
|
* In the still open new release window, press "Publish release". The now-existing tag will be used.
|
||||||
887
README.md
887
README.md
@@ -9,9 +9,6 @@ tools that do one thing well.
|
|||||||
This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
|
This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
|
||||||
[ruby-build](https://github.com/rbenv/ruby-build), and modified for Python.
|
[ruby-build](https://github.com/rbenv/ruby-build), and modified for Python.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
### What pyenv _does..._
|
### What pyenv _does..._
|
||||||
|
|
||||||
* Lets you **change the global Python version** on a per-user basis.
|
* Lets you **change the global Python version** on a per-user basis.
|
||||||
@@ -32,31 +29,29 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
|
|||||||
yourself, or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)
|
yourself, or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv)
|
||||||
to automate the process.
|
to automate the process.
|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
|
||||||
## Table of Contents
|
## 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)**
|
* **[Installation](#installation)**
|
||||||
* [Getting Pyenv](#getting-pyenv)
|
* [Getting Pyenv](#a-getting-pyenv)
|
||||||
* [UNIX/MacOS](#unixmacos)
|
* [Linux/UNIX](#linuxunix)
|
||||||
|
* [Automatic Installer](#1-automatic-installer-recommended)
|
||||||
|
* [Basic GitHub Checkout](#2-basic-github-checkout)
|
||||||
|
* [MacOS](#macos)
|
||||||
* [Homebrew in macOS](#homebrew-in-macos)
|
* [Homebrew in macOS](#homebrew-in-macos)
|
||||||
* [Automatic installer](#automatic-installer)
|
|
||||||
* [Basic GitHub Checkout](#basic-github-checkout)
|
|
||||||
* [Windows](#windows)
|
* [Windows](#windows)
|
||||||
* [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)
|
||||||
* [Restart your shell](#restart-your-shell)
|
* [Restart your shell](#c-restart-your-shell)
|
||||||
* [Install Python build dependencies](#install-python-build-dependencies)
|
* [Install Python build dependencies](#d-install-python-build-dependencies)
|
||||||
|
* [Upgrade Notes](#e-upgrade-notes)
|
||||||
* **[Usage](#usage)**
|
* **[Usage](#usage)**
|
||||||
* [Install additional Python versions](#install-additional-python-versions)
|
* [Install additional Python versions](#install-additional-python-versions)
|
||||||
* [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version)
|
* [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)
|
* [Switch between Python versions](#switch-between-python-versions)
|
||||||
|
* [Making multiple versions available](#making-multiple-versions-available)
|
||||||
* [Uninstall Python versions](#uninstall-python-versions)
|
* [Uninstall Python versions](#uninstall-python-versions)
|
||||||
* [Other operations](#other-operations)
|
* [Other operations](#other-operations)
|
||||||
* [Upgrading](#upgrading)
|
* [Upgrading](#upgrading)
|
||||||
@@ -64,6 +59,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)
|
* [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout)
|
||||||
* [Uninstalling pyenv](#uninstalling-pyenv)
|
* [Uninstalling pyenv](#uninstalling-pyenv)
|
||||||
* [Pyenv plugins](#pyenv-plugins)
|
* [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)
|
* [Advanced Configuration](#advanced-configuration)
|
||||||
* [Using Pyenv without shims](#using-pyenv-without-shims)
|
* [Using Pyenv without shims](#using-pyenv-without-shims)
|
||||||
* [Environment variables](#environment-variables)
|
* [Environment variables](#environment-variables)
|
||||||
@@ -75,6 +75,452 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
|
|||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### A. Getting Pyenv
|
||||||
|
----
|
||||||
|
#### Linux/Unix
|
||||||
|
<details>
|
||||||
|
|
||||||
|
The Homebrew option from the [MacOS section below](#macos) would also work if you have Homebrew installed.
|
||||||
|
|
||||||
|
##### 1. Automatic installer (Recommended)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -fsSL https://pyenv.run | bash
|
||||||
|
```
|
||||||
|
|
||||||
|
For more details visit our other project:
|
||||||
|
https://github.com/pyenv/pyenv-installer
|
||||||
|
|
||||||
|
|
||||||
|
##### 2. 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
|
||||||
|
```
|
||||||
|
</details>
|
||||||
|
|
||||||
|
#### MacOS
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
The options from the [Linux section above](#linuxunix) also work but Homebrew is recommended for basic usage.
|
||||||
|
|
||||||
|
##### [Homebrew](https://brew.sh) in macOS
|
||||||
|
|
||||||
|
1. Update homebrew and install pyenv:
|
||||||
|
```sh
|
||||||
|
brew update
|
||||||
|
brew install pyenv
|
||||||
|
```
|
||||||
|
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](#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"_
|
||||||
|
|
||||||
|
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 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"
|
||||||
|
~~~
|
||||||
|
</details>
|
||||||
|
|
||||||
|
#### Windows
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### 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.
|
||||||
|
|
||||||
|
#### Bash
|
||||||
|
<details>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
#### Zsh
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
```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`.
|
||||||
|
</details>
|
||||||
|
|
||||||
|
#### Fish
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
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 - fish | source
|
||||||
|
~~~
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### C. Restart your shell
|
||||||
|
----
|
||||||
|
|
||||||
|
for the `PATH` changes to take effect.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
exec "$SHELL"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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**
|
||||||
|
|
||||||
|
<details>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Install additional Python versions
|
||||||
|
|
||||||
|
To install additional 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Running `pyenv install -l` gives the list of all available versions.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
<details> <summary> Notes about python releases </summary>
|
||||||
|
|
||||||
|
**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 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'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).
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
#### 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.
|
||||||
|
|
||||||
|
`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:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pyenv install 3.10
|
||||||
|
pyenv global 3.10
|
||||||
|
```
|
||||||
|
|
||||||
|
You can run [`pyenv latest -k <prefix>`](COMMANDS.md#pyenv-latest) to see how `pyenv install` would resolve a specific prefix, or [`pyenv latest <prefix>`](COMMANDS.md#pyenv-latest) to see how other subcommands would resolve it.
|
||||||
|
|
||||||
|
See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details.
|
||||||
|
|
||||||
|
|
||||||
|
<details> <summary> Python versions with extended support </summary>
|
||||||
|
|
||||||
|
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 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
|
||||||
|
</details>
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
### Switch between Python versions
|
||||||
|
|
||||||
|
To select a Pyenv-installed Python as the version to use, run one
|
||||||
|
of the following commands:
|
||||||
|
|
||||||
|
* [`pyenv shell <version>`](COMMANDS.md#pyenv-shell) -- select just for current shell session
|
||||||
|
* [`pyenv local <version>`](COMMANDS.md#pyenv-local) -- automatically select whenever you are in the current directory (or its subdirectories)
|
||||||
|
* [`pyenv global <version>`](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.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
#### 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.
|
||||||
|
[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
|
||||||
|
`$(pyenv root)/versions` directory.
|
||||||
|
|
||||||
|
To remove old Python versions, use [`pyenv uninstall <versions>`](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
|
||||||
|
|
||||||
|
### Upgrading with Homebrew
|
||||||
|
|
||||||
|
If you've installed Pyenv using Homebrew, upgrade using:
|
||||||
|
```sh
|
||||||
|
brew upgrade pyenv
|
||||||
|
```
|
||||||
|
|
||||||
|
To switch from a release to the latest development head 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`:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd $(pyenv root)
|
||||||
|
git pull
|
||||||
|
```
|
||||||
|
|
||||||
|
To upgrade to a specific release of Pyenv, check out the corresponding tag:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd $(pyenv root)
|
||||||
|
git fetch
|
||||||
|
git tag
|
||||||
|
git checkout v0.1.0
|
||||||
|
```
|
||||||
|
|
||||||
|
## Uninstalling pyenv
|
||||||
|
|
||||||
|
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` 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.
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Pyenv 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/<whatever>` you can also put
|
||||||
|
under `$PYENV_ROOT/plugins/your_plugin_name/<whatever>`.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
## How It Works
|
## How It Works
|
||||||
|
|
||||||
@@ -198,401 +644,6 @@ As far as Pyenv is concerned, version names are simply directories under
|
|||||||
----
|
----
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Getting Pyenv
|
|
||||||
#### UNIX/MacOS
|
|
||||||
##### Homebrew in macOS
|
|
||||||
|
|
||||||
1. Consider installing with [Homebrew](https://brew.sh):
|
|
||||||
```sh
|
|
||||||
brew update
|
|
||||||
brew install pyenv
|
|
||||||
```
|
|
||||||
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).
|
|
||||||
|
|
||||||
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
|
|
||||||
_(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 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"
|
|
||||||
~~~
|
|
||||||
|
|
||||||
|
|
||||||
##### 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
|
|
||||||
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.
|
|
||||||
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
|
|
||||||
|
|
||||||
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
|
|
||||||
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 '[[ -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 '[[ -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 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.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
```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 additional 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
|
|
||||||
```
|
|
||||||
|
|
||||||
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,
|
|
||||||
see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables)
|
|
||||||
for details.
|
|
||||||
|
|
||||||
**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'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
|
|
||||||
|
|
||||||
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 pick 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
|
|
||||||
```
|
|
||||||
|
|
||||||
You can run [`pyenv latest -k <prefix>`](COMMANDS.md#pyenv-latest) to see how `pyenv install` would resolve a specific prefix, or [`pyenv latest <prefix>`](COMMANDS.md#pyenv-latest) to see how other subcommands would resolve it.
|
|
||||||
|
|
||||||
See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details.
|
|
||||||
|
|
||||||
|
|
||||||
#### 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 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
|
|
||||||
|
|
||||||
To select a Pyenv-installed Python as the version to use, run one
|
|
||||||
of the following commands:
|
|
||||||
|
|
||||||
* [`pyenv shell <version>`](COMMANDS.md#pyenv-shell) -- select just for current shell session
|
|
||||||
* [`pyenv local <version>`](COMMANDS.md#pyenv-local) -- automatically select whenever you are in the current directory (or its subdirectories)
|
|
||||||
* [`pyenv global <version>`](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 <versions>`](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
|
|
||||||
|
|
||||||
### Upgrading with Homebrew
|
|
||||||
|
|
||||||
If you've installed Pyenv using Homebrew, upgrade using:
|
|
||||||
```sh
|
|
||||||
brew upgrade pyenv
|
|
||||||
```
|
|
||||||
|
|
||||||
To switch from a release to the latest development head 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`:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd $(pyenv root)
|
|
||||||
git pull
|
|
||||||
```
|
|
||||||
|
|
||||||
To upgrade to a specific release of Pyenv, check out the corresponding tag:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd $(pyenv root)
|
|
||||||
git fetch
|
|
||||||
git tag
|
|
||||||
git checkout v0.1.0
|
|
||||||
```
|
|
||||||
|
|
||||||
## Uninstalling pyenv
|
|
||||||
|
|
||||||
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` 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.
|
|
||||||
|
|
||||||
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:
|
|
||||||
|
|
||||||
```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
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Pyenv 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/<whatever>` you can also put
|
|
||||||
under `$PYENV_ROOT/plugins/your_plugin_name/<whatever>`.
|
|
||||||
|
|
||||||
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
|
## Advanced Configuration
|
||||||
|
|
||||||
Skip this section unless you must know what every line in your shell
|
Skip this section unless you must know what every line in your shell
|
||||||
@@ -605,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
|
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:
|
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.
|
and redirect invocations of `python`, `pip` etc. transparently.
|
||||||
It prepends `$(pyenv root)/shims` to your `$PATH`.
|
It prepends `$(pyenv root)/shims` to your `$PATH`.
|
||||||
It also deletes any other instances of `$(pyenv root)/shims` on `PATH`
|
It also deletes any other instances of `$(pyenv root)/shims` on `PATH`
|
||||||
which allows to invoke `eval "$(pyenv init -)"` multiple times without
|
which allows to invoke `eval "$(pyenv init -)"` multiple times without
|
||||||
getting duplicate `PATH` entries.
|
getting duplicate `PATH` entries.
|
||||||
|
|
||||||
2. **Installs autocompletion.** This is entirely optional but pretty
|
3. **Installs autocompletion.** This is entirely optional but pretty
|
||||||
useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that
|
useful. Sourcing `<pyenv installation prefix>/completions/pyenv.bash` will set that
|
||||||
up. There are also completions for Zsh and Fish.
|
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
|
shim files. Doing this on init makes sure everything is up to
|
||||||
date. You can always run `pyenv rehash` manually.
|
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
|
This bit is also optional, but allows
|
||||||
pyenv and plugins to change variables in your current shell.
|
pyenv and plugins to change variables in your current shell.
|
||||||
This is required for some commands like `pyenv shell` to work.
|
This is required for some commands like `pyenv shell` to work.
|
||||||
@@ -630,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
|
for some reason you need `pyenv` to be a real script rather than a
|
||||||
shell function, you can safely skip it.
|
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 -`
|
To see exactly what happens under the hood for yourself, run `pyenv init -`
|
||||||
or `pyenv init --path`.
|
or `pyenv init --path`.
|
||||||
|
|||||||
BIN
install_local_python.gif
Normal file
BIN
install_local_python.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 531 KiB |
@@ -94,7 +94,7 @@ if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then
|
|||||||
# Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT
|
# 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}:${bin_path%/*}/pyenv.d"
|
||||||
fi
|
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
|
for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do
|
||||||
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${plugin_hook}"
|
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${plugin_hook}"
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
set -e
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
|
|
||||||
version="2.4.6"
|
version="2.5.2"
|
||||||
git_revision=""
|
git_revision=""
|
||||||
|
|
||||||
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
|
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ if [ "$1" = "--complete" ]; then
|
|||||||
exec pyenv-shims --short
|
exec pyenv-shims --short
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PYENV_VERSION="$(pyenv-version-name)"
|
PYENV_VERSION="$(pyenv-version-name -f)"
|
||||||
PYENV_COMMAND="$1"
|
PYENV_COMMAND="$1"
|
||||||
|
|
||||||
if [ -z "$PYENV_COMMAND" ]; then
|
if [ -z "$PYENV_COMMAND" ]; then
|
||||||
@@ -29,9 +29,9 @@ if [ -z "$PYENV_COMMAND" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export PYENV_VERSION
|
|
||||||
PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")"
|
PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")"
|
||||||
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
|
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
|
||||||
|
export PYENV_VERSION
|
||||||
|
|
||||||
OLDIFS="$IFS"
|
OLDIFS="$IFS"
|
||||||
IFS=$'\n' scripts=(`pyenv-hooks exec`)
|
IFS=$'\n' scripts=(`pyenv-hooks exec`)
|
||||||
|
|||||||
@@ -20,37 +20,32 @@ if [ "$1" = "--complete" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
mode="help"
|
mode="help"
|
||||||
no_rehash=""
|
|
||||||
no_push_path=""
|
|
||||||
for args in "$@"
|
|
||||||
do
|
|
||||||
if [ "$args" = "-" ]; then
|
|
||||||
mode="print"
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$args" = "--path" ]; then
|
while [ "$#" -gt 0 ]; do
|
||||||
mode="path"
|
case "$1" in
|
||||||
shift
|
-)
|
||||||
fi
|
mode="print"
|
||||||
|
;;
|
||||||
if [ "$args" = "--detect-shell" ]; then
|
--path)
|
||||||
mode="detect-shell"
|
mode="path"
|
||||||
shift
|
;;
|
||||||
fi
|
--detect-shell)
|
||||||
|
mode="detect-shell"
|
||||||
if [ "$args" = "--no-push-path" ]; then
|
;;
|
||||||
no_push_path=1
|
--no-push-path)
|
||||||
shift
|
no_push_path=1
|
||||||
fi
|
;;
|
||||||
|
--no-rehash)
|
||||||
if [ "$args" = "--no-rehash" ]; then
|
no_rehash=1
|
||||||
no_rehash=1
|
;;
|
||||||
shift
|
*)
|
||||||
fi
|
shell="$1"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
done
|
done
|
||||||
|
|
||||||
shell="$1"
|
# If shell is not provided, detect it.
|
||||||
if [ -z "$shell" ]; then
|
if [ -z "$shell" ]; then
|
||||||
shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)"
|
shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)"
|
||||||
shell="${shell%% *}"
|
shell="${shell%% *}"
|
||||||
@@ -60,8 +55,6 @@ if [ -z "$shell" ]; then
|
|||||||
shell="${shell%%-*}"
|
shell="${shell%%-*}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
root="${0%/*}/.."
|
|
||||||
|
|
||||||
function main() {
|
function main() {
|
||||||
case "$mode" in
|
case "$mode" in
|
||||||
"help")
|
"help")
|
||||||
@@ -150,7 +143,7 @@ function help_() {
|
|||||||
echo "# Load pyenv automatically by appending"
|
echo "# Load pyenv automatically by appending"
|
||||||
echo "# the following to ~/.config/fish/config.fish:"
|
echo "# the following to ~/.config/fish/config.fish:"
|
||||||
echo
|
echo
|
||||||
echo 'pyenv init - | source'
|
echo 'pyenv init - fish | source'
|
||||||
echo
|
echo
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
@@ -166,7 +159,7 @@ function help_() {
|
|||||||
echo
|
echo
|
||||||
echo 'export PYENV_ROOT="$HOME/.pyenv"'
|
echo 'export PYENV_ROOT="$HOME/.pyenv"'
|
||||||
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"'
|
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"'
|
||||||
echo 'eval "$(pyenv init -)"'
|
echo 'eval "$(pyenv init - '$shell')"'
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
echo
|
echo
|
||||||
@@ -244,7 +237,7 @@ function print_env() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function print_completion() {
|
function print_completion() {
|
||||||
completion="${root}/completions/pyenv.${shell}"
|
completion="${0%/*/*}/completions/pyenv.${shell}"
|
||||||
if [ -r "$completion" ]; then
|
if [ -r "$completion" ]; then
|
||||||
echo "source '$completion'"
|
echo "source '$completion'"
|
||||||
fi
|
fi
|
||||||
@@ -260,52 +253,44 @@ function print_shell_function() {
|
|||||||
commands=(`pyenv-commands --sh`)
|
commands=(`pyenv-commands --sh`)
|
||||||
case "$shell" in
|
case "$shell" in
|
||||||
fish )
|
fish )
|
||||||
cat <<EOS
|
echo \
|
||||||
function pyenv
|
'function pyenv
|
||||||
set command \$argv[1]
|
set command $argv[1]
|
||||||
set -e argv[1]
|
set -e argv[1]
|
||||||
|
|
||||||
switch "\$command"
|
switch "$command"
|
||||||
case ${commands[*]}
|
case '"${commands[*]}"'
|
||||||
source (pyenv "sh-\$command" \$argv|psub)
|
source (pyenv "sh-$command" $argv|psub)
|
||||||
case '*'
|
case "*"
|
||||||
command pyenv "\$command" \$argv
|
command pyenv "$command" $argv
|
||||||
end
|
end
|
||||||
end
|
end'
|
||||||
EOS
|
|
||||||
;;
|
;;
|
||||||
ksh | ksh93 | mksh )
|
ksh | ksh93 | mksh )
|
||||||
cat <<EOS
|
echo \
|
||||||
function pyenv {
|
'function pyenv {
|
||||||
typeset command
|
typeset command=${1:-}'
|
||||||
EOS
|
|
||||||
;;
|
;;
|
||||||
* )
|
* )
|
||||||
cat <<EOS
|
echo \
|
||||||
pyenv() {
|
'pyenv() {
|
||||||
local command
|
local command=${1:-}'
|
||||||
EOS
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "$shell" != "fish" ]; then
|
if [ "$shell" != "fish" ]; then
|
||||||
IFS="|"
|
IFS="|"
|
||||||
cat <<EOS
|
echo \
|
||||||
command="\${1:-}"
|
' [ "$#" -gt 0 ] && shift
|
||||||
if [ "\$#" -gt 0 ]; then
|
case "$command" in
|
||||||
shift
|
'"${commands[*]:-/}"')
|
||||||
fi
|
eval "$(pyenv "sh-$command" "$@")"
|
||||||
|
|
||||||
case "\$command" in
|
|
||||||
${commands[*]:-/})
|
|
||||||
eval "\$(pyenv "sh-\$command" "\$@")"
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
command pyenv "\$command" "\$@"
|
command pyenv "$command" "$@"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}'
|
||||||
EOS
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Summary: Print the latest installed or known version with the given prefix
|
# Summary: Print the latest installed or known version with the given prefix
|
||||||
# Usage: pyenv latest [-k|--known] [-q|--quiet] <prefix>
|
# Usage: pyenv latest [-k|--known] <prefix>
|
||||||
#
|
#
|
||||||
# -k/--known Select from all known versions instead of installed
|
# -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
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
@@ -15,8 +17,13 @@ do
|
|||||||
FROM_KNOWN=1
|
FROM_KNOWN=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
-q|--quiet)
|
-b|--bypass)
|
||||||
QUIET=1
|
BYPASS=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-f|--force)
|
||||||
|
FORCE=1
|
||||||
|
BYPASS=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@@ -41,16 +48,25 @@ IFS=$'\n'
|
|||||||
exit $exitcode;
|
exit $exitcode;
|
||||||
fi
|
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
|
# 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")"
|
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
|
# FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash
|
||||||
DEFINITION_CANDIDATES=(\
|
DEFINITION_CANDIDATES=(\
|
||||||
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
|
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
|
||||||
grep -Ee "^$prefix_re[-.]" || true))
|
grep -Ee "^$prefix_re[-.].*$suffix_re\$" || true))
|
||||||
|
|
||||||
DEFINITION_CANDIDATES=(\
|
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' -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
|
# Compose a sorting key, followed by | and original value
|
||||||
DEFINITION_CANDIDATES=(\
|
DEFINITION_CANDIDATES=(\
|
||||||
@@ -71,10 +87,14 @@ IFS=$'\n'
|
|||||||
if [[ -n "$DEFINITION" ]]; then
|
if [[ -n "$DEFINITION" ]]; then
|
||||||
echo "$DEFINITION"
|
echo "$DEFINITION"
|
||||||
else
|
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
|
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
|
fi
|
||||||
exitcode=1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit $exitcode
|
exit $exitcode
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
#
|
#
|
||||||
# Summary: Set or show the local application-specific Python version(s)
|
# Summary: Set or show the local application-specific Python version(s)
|
||||||
#
|
#
|
||||||
# Usage: pyenv local <version> <version2> <..>
|
# Usage: pyenv local [-f|--force] [<version> [...]]
|
||||||
# pyenv local --unset
|
# 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
|
# Sets the local application-specific Python version(s) by writing the
|
||||||
# version name to a file named `.python-version'.
|
# version name to a file named `.python-version'.
|
||||||
#
|
#
|
||||||
@@ -36,12 +38,25 @@ if [ "$1" = "--complete" ]; then
|
|||||||
exec pyenv-versions --bare
|
exec pyenv-versions --bare
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-f|--force)
|
||||||
|
FORCE=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
versions=("$@")
|
versions=("$@")
|
||||||
|
|
||||||
if [ "$versions" = "--unset" ]; then
|
if [ "$versions" = "--unset" ]; then
|
||||||
rm -f .python-version
|
rm -f .python-version
|
||||||
elif [ -n "$versions" ]; then
|
elif [ -n "$versions" ]; then
|
||||||
pyenv-version-file-write .python-version "${versions[@]}"
|
pyenv-version-file-write ${FORCE:+-f }.python-version "${versions[@]}"
|
||||||
else
|
else
|
||||||
if version_file="$(pyenv-version-file "$PWD")"; then
|
if version_file="$(pyenv-version-file "$PWD")"; then
|
||||||
IFS=: versions=($(pyenv-version-file-read "$version_file"))
|
IFS=: versions=($(pyenv-version-file-read "$version_file"))
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ OLDIFS="$IFS"
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
version="$(pyenv-latest -q "$version" || echo "$version")"
|
version="$(pyenv-latest -f "$version")"
|
||||||
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
|
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
|
||||||
fi
|
fi
|
||||||
if [ -d "$PYENV_PREFIX_PATH" ]; then
|
if [ -d "$PYENV_PREFIX_PATH" ]; then
|
||||||
|
|||||||
@@ -1,9 +1,25 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Usage: pyenv version-file-write <file> <version>
|
# Usage: pyenv version-file-write [-f|--force] <file> <version> [...]
|
||||||
|
#
|
||||||
|
# -f/--force Don't verify that the versions exist
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
|
|
||||||
|
while [[ $# -gt 0 ]]
|
||||||
|
do
|
||||||
|
case "$1" in
|
||||||
|
-f|--force)
|
||||||
|
FORCE=1
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
PYENV_VERSION_FILE="$1"
|
PYENV_VERSION_FILE="$1"
|
||||||
shift || true
|
shift || true
|
||||||
versions=("$@")
|
versions=("$@")
|
||||||
@@ -14,7 +30,7 @@ if [ -z "$versions" ] || [ -z "$PYENV_VERSION_FILE" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Make sure the specified version is installed.
|
# 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.
|
# Write the version out to disk.
|
||||||
# Create an empty file. Using "rm" might cause a permission error.
|
# Create an empty file. Using "rm" might cause a permission error.
|
||||||
|
|||||||
@@ -1,8 +1,25 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Summary: Show the current Python version
|
# 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
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -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
|
if [ -z "$PYENV_VERSION" ]; then
|
||||||
PYENV_VERSION_FILE="$(pyenv-version-file)"
|
PYENV_VERSION_FILE="$(pyenv-version-file)"
|
||||||
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
|
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
|
||||||
@@ -30,15 +47,23 @@ OLDIFS="$IFS"
|
|||||||
{ IFS=:
|
{ IFS=:
|
||||||
any_not_installed=0
|
any_not_installed=0
|
||||||
for version in ${PYENV_VERSION}; do
|
for version in ${PYENV_VERSION}; do
|
||||||
if version_exists "$version" || [ "$version" = "system" ]; then
|
# Remove the explicit 'python-' prefix from versions like 'python-3.12'.
|
||||||
versions=("${versions[@]}" "${version}")
|
normalised_version="${version#python-}"
|
||||||
elif version_exists "${version#python-}"; then
|
if version_exists "${version}" || [ "$version" = "system" ]; then
|
||||||
versions=("${versions[@]}" "${version#python-}")
|
versions+=("${version}")
|
||||||
elif resolved_version="$(pyenv-latest -q "$version")"; then
|
elif version_exists "${normalised_version}"; then
|
||||||
versions=("${versions[@]}" "${resolved_version}")
|
versions+=("${normalised_version}")
|
||||||
|
elif resolved_version="$(pyenv-latest -b "${version}")"; then
|
||||||
|
versions+=("${resolved_version}")
|
||||||
|
elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then
|
||||||
|
versions+=("${resolved_version}")
|
||||||
else
|
else
|
||||||
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
if [[ -n $FORCE ]]; then
|
||||||
any_not_installed=1
|
versions+=("${normalised_version}")
|
||||||
|
else
|
||||||
|
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
||||||
|
any_not_installed=1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ if [ -z "$PYENV_COMMAND" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
OLDIFS="$IFS"
|
OLDIFS="$IFS"
|
||||||
IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)})
|
IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name -f)})
|
||||||
IFS="$OLDIFS"
|
IFS="$OLDIFS"
|
||||||
|
|
||||||
declare -a nonexistent_versions
|
declare -a nonexistent_versions
|
||||||
@@ -96,7 +96,6 @@ else
|
|||||||
for version in "${nonexistent_versions[@]}"; do
|
for version in "${nonexistent_versions[@]}"; do
|
||||||
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
||||||
done
|
done
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "pyenv: $PYENV_COMMAND: command not found" >&2
|
echo "pyenv: $PYENV_COMMAND: command not found" >&2
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ pyenv lets you easily switch between multiple versions of Python\. It's simple,
|
|||||||
.RS 15
|
.RS 15
|
||||||
.nf
|
.nf
|
||||||
if command -v pyenv 1>/dev/null 2>&1; then\n
|
if command -v pyenv 1>/dev/null 2>&1; then\n
|
||||||
eval "$(pyenv init -)" \n
|
eval "$(pyenv init - bash)" \n
|
||||||
fi
|
fi
|
||||||
.fi
|
.fi
|
||||||
.RE
|
.RE
|
||||||
|
|||||||
@@ -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
|
* `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get
|
||||||
additionally searched when looking up build definitions.
|
additionally searched when looking up build definitions.
|
||||||
* `CC` sets the path to the C compiler.
|
* `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`.
|
* `CONFIGURE_OPTS` lets you pass additional options to `./configure`.
|
||||||
* `MAKE` lets you override the command to use for `make`. Useful for specifying
|
* `MAKE` lets you override the command to use for `make`. Useful for specifying
|
||||||
GNU make (`gmake`) on some systems.
|
GNU make (`gmake`) on some systems.
|
||||||
* `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to `make`.
|
* `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to `make`.
|
||||||
* `MAKE_INSTALL_OPTS` lets you pass additional options to `make install`.
|
* `MAKE_INSTALL_OPTS` lets you pass additional options to `make install`.
|
||||||
* `PYTHON_CONFIGURE_OPTS` and `PYTHON_MAKE_OPTS` and `PYTHON_MAKE_INSTALL_OPTS` allow
|
* `<PACKAGE>_CFLAGS`, `<PACKAGE>_CPPFLAGS`, `<PACKAGE>_LDFLAGS` let you pass additional options to `CFLAGS`/`CPPFLAGS`/`LDFLAGS` specifically for building `<package>` (Python itself or a dependency library) from source as part of the build script. `<PACKAGE>` 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.
|
||||||
you to specify configure and make options for building CPython. These variables
|
* `<PACKAGE>_CONFIGURE_OPTS`, `<PACKAGE>_MAKE_OPTS`, `<PACKAGE>_MAKE_INSTALL_OPTS`, `<PACKAGE>_MAKE_INSTALL_TARGET` allow
|
||||||
will be passed to Python only, not any dependent packages (e.g. libyaml).
|
you to specify configure and make options for building `<package>` (same as above). "Make install target" would replace "`install`" in the `make install` invocation.
|
||||||
|
|
||||||
### Applying patches to Python before compiling
|
### Applying patches to Python before compiling
|
||||||
|
|
||||||
@@ -208,7 +206,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%.
|
common for performance improvement from this to be in the ballpark of 30%.
|
||||||
|
|
||||||
```sh
|
```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
|
You can also customize the task used for profile guided optimization by setting
|
||||||
|
|||||||
@@ -158,7 +158,7 @@ for DEFINITION in "${DEFINITIONS[@]}"; do
|
|||||||
# Try to resolve a prefix if user indeed gave a prefix.
|
# Try to resolve a prefix if user indeed gave a prefix.
|
||||||
# We install the version under the resolved name
|
# We install the version under the resolved name
|
||||||
# and hooks also see 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.
|
# Set VERSION_NAME from $DEFINITION. Then compute the installation prefix.
|
||||||
VERSION_NAME="${DEFINITION##*/}"
|
VERSION_NAME="${DEFINITION##*/}"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
# See `pyenv versions` for a complete list of installed versions.
|
# See `pyenv versions` for a complete list of installed versions.
|
||||||
#
|
#
|
||||||
set -e
|
set -e
|
||||||
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
|
|
||||||
# Provide pyenv completions
|
# Provide pyenv completions
|
||||||
if [ "$1" = "--complete" ]; then
|
if [ "$1" = "--complete" ]; then
|
||||||
@@ -74,7 +75,7 @@ uninstall-python() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
read -p "pyenv: remove $PREFIX? [y|N] "
|
read -p "pyenv: remove $PREFIX? (y/N) "
|
||||||
case "$REPLY" in
|
case "$REPLY" in
|
||||||
y | Y | yes | YES ) ;;
|
y | Y | yes | YES ) ;;
|
||||||
* ) exit 1 ;;
|
* ) exit 1 ;;
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ PYTHON_BUILD_VERSION="20180424"
|
|||||||
OLDIFS="$IFS"
|
OLDIFS="$IFS"
|
||||||
|
|
||||||
set -E
|
set -E
|
||||||
|
shopt -s extglob
|
||||||
[ -n "$PYENV_DEBUG" ] && {
|
[ -n "$PYENV_DEBUG" ] && {
|
||||||
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
|
export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
|
||||||
set -x
|
set -x
|
||||||
@@ -557,7 +558,7 @@ download_tarball() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
has_tar_xz_support() {
|
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() {
|
fetch_git() {
|
||||||
@@ -810,10 +811,12 @@ build_package_standard_build() {
|
|||||||
local PACKAGE_MAKE_OPTS="${package_var_name}_MAKE_OPTS"
|
local PACKAGE_MAKE_OPTS="${package_var_name}_MAKE_OPTS"
|
||||||
local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]"
|
local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]"
|
||||||
local PACKAGE_CFLAGS="${package_var_name}_CFLAGS"
|
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
|
if [ "$package_var_name" = "PYTHON" ]; then
|
||||||
use_homebrew || true
|
use_homebrew || true
|
||||||
use_tcltk || true
|
use_custom_tcltk || use_homebrew_tcltk || true
|
||||||
use_homebrew_readline || use_freebsd_pkg || true
|
use_homebrew_readline || use_freebsd_pkg || true
|
||||||
use_homebrew_ncurses || true
|
use_homebrew_ncurses || true
|
||||||
if is_mac -ge 1014; then
|
if is_mac -ge 1014; then
|
||||||
@@ -825,8 +828,14 @@ build_package_standard_build() {
|
|||||||
use_free_threading || true
|
use_free_threading || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then
|
( if [[ -n "${!PACKAGE_CFLAGS}" ]]; then
|
||||||
export CFLAGS="$CFLAGS ${!PACKAGE_CFLAGS}"
|
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
|
fi
|
||||||
if [ -z "$CC" ] && is_mac -ge 1010; then
|
if [ -z "$CC" ] && is_mac -ge 1010; then
|
||||||
export CC=clang
|
export CC=clang
|
||||||
@@ -1591,13 +1600,13 @@ build_package_mac_openssl() {
|
|||||||
|
|
||||||
local nokerberos
|
local nokerberos
|
||||||
[[ "$1" != openssl-1.0.* ]] || nokerberos=1
|
[[ "$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.
|
# Compile a shared lib with zlib dynamically linked.
|
||||||
package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5}
|
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
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
build_package_standard "$@"
|
build_package_standard "$@"
|
||||||
|
|
||||||
@@ -1607,6 +1616,16 @@ build_package_mac_openssl() {
|
|||||||
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$pem_file"
|
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[1]} )
|
||||||
|
[[ ${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.
|
# Post-install check that the openssl extension was built.
|
||||||
build_package_verify_openssl() {
|
build_package_verify_openssl() {
|
||||||
"$RUBY_BIN" -e '
|
"$RUBY_BIN" -e '
|
||||||
@@ -1670,31 +1689,43 @@ use_xcode_sdk_zlib() {
|
|||||||
|
|
||||||
use_homebrew_tcltk() {
|
use_homebrew_tcltk() {
|
||||||
can_use_homebrew || return 1
|
can_use_homebrew || return 1
|
||||||
# get the version from the folder that homebrew versions
|
# Since https://github.com/Homebrew/homebrew-core/commit/f10e88617b41555193c22fdcba6109fe82155ee2 (10.11.2024),
|
||||||
local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)"
|
# tcl-tk is 9.0 which is not compatible with CPython as of this writing
|
||||||
if [ -d "$tcltk_libdir" ]; then
|
# but we'll keep it as backup for cases like non-updated Homebrew
|
||||||
echo "python-build: use tcl-tk from homebrew"
|
local tcltk
|
||||||
if [[ -z "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then
|
for tcltk in "tcl-tk@8" "tcl-tk"; do
|
||||||
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
|
local tcltk_libdir="$(brew --prefix "${tcltk}" 2>/dev/null || true)"
|
||||||
package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
|
if [ -d "$tcltk_libdir" ]; then
|
||||||
# In Homebrew Tcl/Tk 8.6.13, headers have been moved to the 'tcl-tk' subdir.
|
echo "python-build: use tcl-tk from homebrew"
|
||||||
# We're not using tclConfig.sh here 'cuz it produces the version-specific path to <brew prefix>/Cellar
|
if [[ -z "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then
|
||||||
# and we'd rather have rpath set to <brew prefix>/opt/<...> to allow micro release upgrades without rebuilding
|
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
|
||||||
# XXX: do use tclConfig.sh and translate the paths if more path shenanigans appear in later releases
|
package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
|
||||||
if [ -d "$tcltk_libdir/include/tcl-tk" ]; then
|
# In Homebrew Tcl/Tk 8.6.13, headers have been moved to the 'tcl-tk' subdir.
|
||||||
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include/tcl-tk"
|
# We're not using tclConfig.sh here 'cuz it produces the version-specific path to <brew prefix>/Cellar
|
||||||
else
|
# and we'd rather have rpath set to <brew prefix>/opt/<...> to allow micro release upgrades without rebuilding
|
||||||
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include"
|
# 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
|
fi
|
||||||
|
export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
|
||||||
|
return 0
|
||||||
fi
|
fi
|
||||||
export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
|
done
|
||||||
fi
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# FIXME: this function is a workaround for #1125
|
# FIXME: this function is a workaround for #1125
|
||||||
# once fixed, it should be removed.
|
# once fixed, it should be removed.
|
||||||
|
# if tcltk_ops_flag is in PYTHON_CONFIGURE_OPTS, use user provided tcltk
|
||||||
use_custom_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="
|
local tcltk_ops_flag="--with-tcltk-libs="
|
||||||
# get tcltk libs
|
# get tcltk libs
|
||||||
local tcltk_libs="${tcltk_ops//$tcltk_ops_flag/}"
|
local tcltk_libs="${tcltk_ops//$tcltk_ops_flag/}"
|
||||||
@@ -1737,21 +1768,6 @@ get_tcltk_flag_from() {
|
|||||||
IFS="$OLDIFS"
|
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
|
# Since 3.12, CPython can add DWARF debug information in MacOS
|
||||||
# using Apple's nonstandard way, `dsymutil', that creates a "dSYM bundle"
|
# using Apple's nonstandard way, `dsymutil', that creates a "dSYM bundle"
|
||||||
# that's supposed to be installed alongside executables
|
# that's supposed to be installed alongside executables
|
||||||
@@ -1784,20 +1800,14 @@ build_package_auto_tcltk() {
|
|||||||
fi
|
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() {
|
package_is_python() {
|
||||||
shopt -s extglob
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* )
|
Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* )
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
return 1
|
return 1
|
||||||
shopt -u extglob
|
|
||||||
}
|
}
|
||||||
shopt -u extglob
|
|
||||||
|
|
||||||
apply_patch() {
|
apply_patch() {
|
||||||
local package_name="$1"
|
local package_name="$1"
|
||||||
@@ -2308,7 +2318,6 @@ if [[ "$PYPY_OPTS" == *"--shared"* ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
||||||
shopt -s extglob
|
|
||||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||||
if ! is_mac; then
|
if ! is_mac; then
|
||||||
echo "python-build: framework installation is not supported outside of MacOS." >&2
|
echo "python-build: framework installation is not supported outside of MacOS." >&2
|
||||||
@@ -2334,10 +2343,8 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; the
|
|||||||
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}";
|
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}";
|
||||||
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }"
|
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }"
|
||||||
fi
|
fi
|
||||||
shopt -u extglob
|
|
||||||
|
|
||||||
# Build against universal SDK
|
# Build against universal SDK
|
||||||
shopt -s extglob
|
|
||||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then
|
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then
|
||||||
if ! is_mac; then
|
if ! is_mac; then
|
||||||
echo "python-build: universal installation is not supported outside of MacOS." >&2
|
echo "python-build: universal installation is not supported outside of MacOS." >&2
|
||||||
@@ -2359,7 +2366,6 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]];
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
shopt -u extglob
|
|
||||||
|
|
||||||
# Compile with `--enable-unicode=ucs4` by default (#257)
|
# Compile with `--enable-unicode=ucs4` by default (#257)
|
||||||
if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then
|
if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then
|
||||||
@@ -2454,6 +2460,7 @@ python_bin_suffix() {
|
|||||||
version_name="${version_name%-dev}"
|
version_name="${version_name%-dev}"
|
||||||
version_name="${version_name%-rc*}"
|
version_name="${version_name%-rc*}"
|
||||||
version_name="${version_name%rc*}"
|
version_name="${version_name%rc*}"
|
||||||
|
version_name="${version_name%%*([^0-9])}"
|
||||||
version_info=(${version_name//./ })
|
version_info=(${version_name//./ })
|
||||||
echo "${version_info[0]}.${version_info[1]}"
|
echo "${version_info[0]}.${version_info[1]}"
|
||||||
;;
|
;;
|
||||||
|
|||||||
@@ -11,15 +11,18 @@ Also ignores sub-patch releases if that major.minor.patch already exists,
|
|||||||
but otherwise, takes the latest sub-patch release for given OS/arch.
|
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.
|
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
|
import textwrap
|
||||||
from argparse import ArgumentParser
|
from argparse import ArgumentParser
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
from dataclasses import dataclass
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from functools import total_ordering
|
from functools import total_ordering
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import NamedTuple, List, Optional, DefaultDict, Dict
|
from typing import NamedTuple, List, Optional, DefaultDict, Dict
|
||||||
import logging
|
|
||||||
import string
|
|
||||||
|
|
||||||
import requests_html
|
import requests_html
|
||||||
|
|
||||||
@@ -90,7 +93,7 @@ class Flavor(StrEnum):
|
|||||||
ANACONDA = "anaconda"
|
ANACONDA = "anaconda"
|
||||||
MINICONDA = "miniconda"
|
MINICONDA = "miniconda"
|
||||||
|
|
||||||
|
|
||||||
class TFlavor(StrEnum):
|
class TFlavor(StrEnum):
|
||||||
ANACONDA = "Anaconda"
|
ANACONDA = "Anaconda"
|
||||||
MINICONDA = "Miniconda"
|
MINICONDA = "Miniconda"
|
||||||
@@ -102,21 +105,37 @@ class Suffix(StrEnum):
|
|||||||
NONE = ""
|
NONE = ""
|
||||||
|
|
||||||
|
|
||||||
class PyVersion(StrEnum):
|
PyVersion = None
|
||||||
PY27 = "py27"
|
class PyVersionMeta(type):
|
||||||
PY36 = "py36"
|
def __getattr__(self, name):
|
||||||
PY37 = "py37"
|
"""Generate PyVersion.PYXXX on demand to future-proof it"""
|
||||||
PY38 = "py38"
|
if PyVersion is not None:
|
||||||
PY39 = "py39"
|
return PyVersion(name.lower())
|
||||||
PY310 = "py310"
|
return super(PyVersionMeta,self).__getattr__(self, name)
|
||||||
PY311 = "py311"
|
|
||||||
|
|
||||||
|
@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):
|
def version(self):
|
||||||
first, *others = self.value[2:]
|
return f"{self.major}.{self.minor}"
|
||||||
return f"{first}.{''.join(others)}"
|
|
||||||
|
|
||||||
def version_info(self):
|
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
|
@total_ordering
|
||||||
@@ -190,10 +209,15 @@ class CondaVersion(NamedTuple):
|
|||||||
# https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html
|
# https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html
|
||||||
if v < (4, 7):
|
if v < (4, 7):
|
||||||
return PyVersion.PY36
|
return PyVersion.PY36
|
||||||
else:
|
if v < (4, 8):
|
||||||
return PyVersion.PY37
|
return PyVersion.PY37
|
||||||
|
else:
|
||||||
|
# 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":
|
if self.flavor == "anaconda":
|
||||||
# https://docs.anaconda.com/free/anaconda/reference/release-notes/
|
# https://docs.anaconda.com/free/anaconda/reference/release-notes/
|
||||||
|
if v >= (2024,6):
|
||||||
|
return PyVersion.PY312
|
||||||
if v >= (2023,7):
|
if v >= (2023,7):
|
||||||
return PyVersion.PY311
|
return PyVersion.PY311
|
||||||
if v >= (2023,3):
|
if v >= (2023,3):
|
||||||
@@ -246,8 +270,9 @@ class CondaSpec(NamedTuple):
|
|||||||
SupportedArch(arch),
|
SupportedArch(arch),
|
||||||
md5,
|
md5,
|
||||||
repo,
|
repo,
|
||||||
|
py_ver
|
||||||
)
|
)
|
||||||
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())
|
spec = spec.with_py_version(spec.version.default_py_version())
|
||||||
return spec
|
return spec
|
||||||
|
|
||||||
@@ -296,8 +321,8 @@ def get_existing_condas(name):
|
|||||||
if v.version_str != "latest":
|
if v.version_str != "latest":
|
||||||
logger.debug("Found existing %(name)s version %(v)s", locals())
|
logger.debug("Found existing %(name)s version %(v)s", locals())
|
||||||
yield v
|
yield v
|
||||||
except ValueError:
|
except ValueError as e:
|
||||||
logger.error("Unable to parse existing version %s", entry_name)
|
logger.error("Unable to parse existing version %s: %s", entry_name, e)
|
||||||
|
|
||||||
|
|
||||||
def get_available_condas(name, repo):
|
def get_available_condas(name, repo):
|
||||||
@@ -348,19 +373,12 @@ if __name__ == "__main__":
|
|||||||
help="Do not write scripts, just report them to stdout",
|
help="Do not write scripts, just report them to stdout",
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-v", "--verbose", action="count", default=0,
|
"-v", "--verbose", action="store_true", default=0,
|
||||||
help="Increase verbosity of logging",
|
help="Increase verbosity of logging",
|
||||||
)
|
)
|
||||||
parsed = parser.parse_args()
|
parsed = parser.parse_args()
|
||||||
|
|
||||||
log_level = {
|
logging.basicConfig(level=logging.DEBUG if parsed.verbose else logging.INFO)
|
||||||
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)
|
|
||||||
|
|
||||||
existing_versions = set()
|
existing_versions = set()
|
||||||
available_specs = set()
|
available_specs = set()
|
||||||
@@ -377,7 +395,7 @@ if __name__ == "__main__":
|
|||||||
for s in sorted(available_specs, key=key_fn):
|
for s in sorted(available_specs, key=key_fn):
|
||||||
key = s.version
|
key = s.version
|
||||||
vv = key.version_str.info()
|
vv = key.version_str.info()
|
||||||
|
|
||||||
reason = None
|
reason = None
|
||||||
if key in existing_versions:
|
if key in existing_versions:
|
||||||
reason = "already exists"
|
reason = "already exists"
|
||||||
@@ -385,7 +403,7 @@ if __name__ == "__main__":
|
|||||||
reason = "too old"
|
reason = "too old"
|
||||||
elif len(key.version_str.info()) >= 4 and "-" not in key.version_str:
|
elif len(key.version_str.info()) >= 4 and "-" not in key.version_str:
|
||||||
reason = "ignoring hotfix releases"
|
reason = "ignoring hotfix releases"
|
||||||
|
|
||||||
if reason:
|
if reason:
|
||||||
logger.debug("Ignoring version %(s)s (%(reason)s)", locals())
|
logger.debug("Ignoring version %(s)s (%(reason)s)", locals())
|
||||||
continue
|
continue
|
||||||
|
|||||||
@@ -11,9 +11,15 @@ logger = logging.getLogger(__name__)
|
|||||||
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'))
|
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'))
|
||||||
|
|
||||||
MINIFORGE_REPO = 'conda-forge/miniforge'
|
MINIFORGE_REPO = 'conda-forge/miniforge'
|
||||||
PYTHON_VERSION = '310'
|
|
||||||
DISTRIBUTIONS = ['miniforge', 'mambaforge']
|
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 = """
|
install_script_fmt = """
|
||||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||||
{install_lines}
|
{install_lines}
|
||||||
@@ -38,7 +44,7 @@ here = Path(__file__).resolve()
|
|||||||
out_dir: Path = here.parent.parent / "share" / "python-build"
|
out_dir: Path = here.parent.parent / "share" / "python-build"
|
||||||
|
|
||||||
def download_sha(url):
|
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()))
|
tup = tuple(reversed(requests.get(url).text.replace('./', '').rstrip().split()))
|
||||||
logger.debug('Got %(tup)s', locals())
|
logger.debug('Got %(tup)s', locals())
|
||||||
return tup
|
return tup
|
||||||
@@ -56,7 +62,7 @@ def create_spec(filename, sha, url):
|
|||||||
'filename': filename,
|
'filename': filename,
|
||||||
'sha': sha,
|
'sha': sha,
|
||||||
'url': url,
|
'url': url,
|
||||||
'py_version': PYTHON_VERSION,
|
'py_version': py_version(version),
|
||||||
'flavor': flavor,
|
'flavor': flavor,
|
||||||
'os': os,
|
'os': os,
|
||||||
'arch': arch,
|
'arch': arch,
|
||||||
@@ -67,13 +73,29 @@ def create_spec(filename, sha, url):
|
|||||||
|
|
||||||
return spec
|
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 <version>" 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):
|
def supported(filename):
|
||||||
return ('pypy' not in filename) and ('Windows' not in filename)
|
return ('pypy' not in filename) and ('Windows' not in filename)
|
||||||
|
|
||||||
def add_version(release):
|
def add_version(release):
|
||||||
tag_name = release['tag_name']
|
tag_name = release['tag_name']
|
||||||
download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] }
|
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)]
|
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:
|
||||||
@@ -104,7 +126,7 @@ for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/rele
|
|||||||
# Build scripts for miniforge3-4.13.0-0 have already been generated.
|
# 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
|
# 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.
|
# 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
|
continue
|
||||||
|
|
||||||
if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS):
|
if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS):
|
||||||
|
|||||||
9
plugins/python-build/share/python-build/3.10.15
Normal file
9
plugins/python-build/share/python-build/3.10.15
Normal file
@@ -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
|
||||||
9
plugins/python-build/share/python-build/3.10.16
Normal file
9
plugins/python-build/share/python-build/3.10.16
Normal file
@@ -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
|
||||||
10
plugins/python-build/share/python-build/3.11.10
Normal file
10
plugins/python-build/share/python-build/3.11.10
Normal file
@@ -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.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
|
||||||
10
plugins/python-build/share/python-build/3.11.11
Normal file
10
plugins/python-build/share/python-build/3.11.11
Normal file
@@ -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
|
||||||
@@ -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 "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
|
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
|
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.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
|
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.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
|
fi
|
||||||
9
plugins/python-build/share/python-build/3.12.6
Normal file
9
plugins/python-build/share/python-build/3.12.6
Normal file
@@ -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.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
|
||||||
9
plugins/python-build/share/python-build/3.12.7
Normal file
9
plugins/python-build/share/python-build/3.12.7
Normal file
@@ -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
|
||||||
9
plugins/python-build/share/python-build/3.12.8
Normal file
9
plugins/python-build/share/python-build/3.12.8
Normal file
@@ -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
|
||||||
9
plugins/python-build/share/python-build/3.12.9
Normal file
9
plugins/python-build/share/python-build/3.12.9
Normal file
@@ -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
|
||||||
9
plugins/python-build/share/python-build/3.13.0
Normal file
9
plugins/python-build/share/python-build/3.13.0
Normal file
@@ -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.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.0" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz#12445c7b3db3126c41190bfdc1c8239c39c719404e844babbd015a1bc3fafcd4" standard verify_py313 copy_python_gdb ensurepip
|
||||||
|
fi
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
export PYTHON_BUILD_FREE_THREADING=1
|
|
||||||
source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0b3
|
|
||||||
2
plugins/python-build/share/python-build/3.13.0t
Normal file
2
plugins/python-build/share/python-build/3.13.0t
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export PYTHON_BUILD_FREE_THREADING=1
|
||||||
|
source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0
|
||||||
9
plugins/python-build/share/python-build/3.13.1
Normal file
9
plugins/python-build/share/python-build/3.13.1
Normal file
@@ -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.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
|
||||||
2
plugins/python-build/share/python-build/3.13.1t
Normal file
2
plugins/python-build/share/python-build/3.13.1t
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export PYTHON_BUILD_FREE_THREADING=1
|
||||||
|
source "$(dirname "${BASH_SOURCE[0]}")"/3.13.1
|
||||||
9
plugins/python-build/share/python-build/3.13.2
Normal file
9
plugins/python-build/share/python-build/3.13.2
Normal file
@@ -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
|
||||||
2
plugins/python-build/share/python-build/3.13.2t
Normal file
2
plugins/python-build/share/python-build/3.13.2t
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export PYTHON_BUILD_FREE_THREADING=1
|
||||||
|
source "$(dirname "${BASH_SOURCE[0]}")"/3.13.2
|
||||||
9
plugins/python-build/share/python-build/3.14.0a4
Normal file
9
plugins/python-build/share/python-build/3.14.0a4
Normal file
@@ -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.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
|
||||||
2
plugins/python-build/share/python-build/3.14.0a4t
Normal file
2
plugins/python-build/share/python-build/3.14.0a4t
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
export PYTHON_BUILD_FREE_THREADING=1
|
||||||
|
source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a4
|
||||||
12
plugins/python-build/share/python-build/3.8.20
Normal file
12
plugins/python-build/share/python-build/3.8.20
Normal file
@@ -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
|
||||||
12
plugins/python-build/share/python-build/3.9.20
Normal file
12
plugins/python-build/share/python-build/3.9.20
Normal file
@@ -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#1e71f006222666e0a39f5a47be8221415c22c4dd8f25334cc41aee260b3d379e" standard verify_py39 copy_python_gdb ensurepip
|
||||||
|
fi
|
||||||
12
plugins/python-build/share/python-build/3.9.21
Normal file
12
plugins/python-build/share/python-build/3.9.21
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/anaconda3-2024.06-1
Normal file
25
plugins/python-build/share/python-build/anaconda3-2024.06-1
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/anaconda3-2024.10-1
Normal file
25
plugins/python-build/share/python-build/anaconda3-2024.10-1
Normal file
@@ -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
|
||||||
64
plugins/python-build/share/python-build/graalpy-24.1.0
Normal file
64
plugins/python-build/share/python-build/graalpy-24.1.0
Normal file
@@ -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
|
||||||
64
plugins/python-build/share/python-build/graalpy-24.1.1
Normal file
64
plugins/python-build/share/python-build/graalpy-24.1.1
Normal file
@@ -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
|
||||||
64
plugins/python-build/share/python-build/graalpy-24.1.2
Normal file
64
plugins/python-build/share/python-build/graalpy-24.1.2
Normal file
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.1.2-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.1.2-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.11.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.11.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.11.0-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.11.0-1
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.3.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.3.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.5.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.5.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.7.1-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.7.1-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.7.1-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.7.1-1
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.7.1-2
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.7.1-2
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.9.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.9.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/mambaforge-24.9.2-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-24.9.2-0
Normal file
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.1.2-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.1.2-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.11.0-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.11.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.11.0-1
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.11.0-1
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.11.2-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.11.2-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.11.2-1
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.11.2-1
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.3.0-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.3.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.5.0-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.5.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.7.1-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.7.1-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.7.1-1
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.7.1-1
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.7.1-2
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.7.1-2
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.9.0-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.9.0-0
Normal file
@@ -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
|
||||||
25
plugins/python-build/share/python-build/miniforge3-24.9.2-0
Normal file
25
plugins/python-build/share/python-build/miniforge3-24.9.2-0
Normal file
@@ -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
|
||||||
77
plugins/python-build/share/python-build/pypy2.7-7.3.17
Normal file
77
plugins/python-build/share/python-build/pypy2.7-7.3.17
Normal file
@@ -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'
|
||||||
14
plugins/python-build/share/python-build/pypy2.7-7.3.17-src
Normal file
14
plugins/python-build/share/python-build/pypy2.7-7.3.17-src
Normal file
@@ -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'
|
||||||
77
plugins/python-build/share/python-build/pypy3.10-7.3.17
Normal file
77
plugins/python-build/share/python-build/pypy3.10-7.3.17
Normal file
@@ -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'
|
||||||
14
plugins/python-build/share/python-build/pypy3.10-7.3.17-src
Normal file
14
plugins/python-build/share/python-build/pypy3.10-7.3.17-src
Normal file
@@ -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'
|
||||||
@@ -30,12 +30,12 @@ cached_tarball() {
|
|||||||
tarball() {
|
tarball() {
|
||||||
local name="$1"
|
local name="$1"
|
||||||
local path="$PWD/$name"
|
local path="$PWD/$name"
|
||||||
local configure="$path/configure"
|
local configure="$path/${2:-configure}"
|
||||||
shift 1
|
shift 1
|
||||||
|
|
||||||
executable "$configure" <<OUT
|
executable "$configure" <<OUT
|
||||||
#!$BASH
|
#!$BASH
|
||||||
echo "$name: CPPFLAGS=\\"\$CPPFLAGS\\" LDFLAGS=\\"\$LDFLAGS\\" PKG_CONFIG_PATH=\\"\$PKG_CONFIG_PATH\\"" >> 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
|
echo "$name: \$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@ OUT
|
|||||||
stub_make_install() {
|
stub_make_install() {
|
||||||
stub "$MAKE" \
|
stub "$MAKE" \
|
||||||
" : echo \"$MAKE \$@\" >> build.log" \
|
" : 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() {
|
assert_build_log() {
|
||||||
@@ -74,17 +74,60 @@ assert_build_log() {
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
OUT
|
OUT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "apply global and package-specific flags, package flags come later to have precedence" {
|
||||||
|
local yaml_configure="yaml_configure"
|
||||||
|
|
||||||
|
export YAML_CONFIGURE="./$yaml_configure"
|
||||||
|
export YAML_PREFIX_PATH=yaml_prefix_path
|
||||||
|
export YAML_CONFIGURE_OPTS="yaml_configure_opt1 yaml_configure_opt2"
|
||||||
|
export YAML_MAKE_OPTS="yaml_make_opt1 yaml_make_opt2"
|
||||||
|
export YAML_CFLAGS="yaml_cflag1 yaml_cflag2"
|
||||||
|
export YAML_CPPFLAGS="yaml_cppflag1 yaml_cppflag2"
|
||||||
|
export YAML_LDFLAGS="yaml_ldflag1 yaml_ldflag2"
|
||||||
|
export CONFIGURE_OPTS="configure_opt1 configure_opt2"
|
||||||
|
export MAKE_OPTS="make_opt1 make_opt2"
|
||||||
|
export MAKE_INSTALL_OPTS="make_install_opt1 make_install_opt2"
|
||||||
|
export PYTHON_MAKE_INSTALL_OPTS="python_make_install_opt1 python_make_install_opt2"
|
||||||
|
export PYTHON_MAKE_INSTALL_TARGET="python_make_install_target"
|
||||||
|
|
||||||
|
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 brew false
|
||||||
|
stub_make_install
|
||||||
|
stub_make_install "$PYTHON_MAKE_INSTALL_TARGET"
|
||||||
|
|
||||||
|
|
||||||
|
install_fixture definitions/needs-yaml
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
unstub uname
|
||||||
|
unstub make
|
||||||
|
|
||||||
|
assert_build_log <<OUT
|
||||||
|
yaml-0.1.6: CFLAGS="yaml_cflag1 yaml_cflag2" CPPFLAGS="-I${TMP}/install/include yaml_cppflag1 yaml_cppflag2" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib yaml_ldflag1 yaml_ldflag2" PKG_CONFIG_PATH=""
|
||||||
|
yaml-0.1.6: --prefix=yaml_prefix_path configure_opt1 configure_opt2 yaml_configure_opt1 yaml_configure_opt2
|
||||||
|
make make_opt1 make_opt2 yaml_make_opt1 yaml_make_opt2
|
||||||
|
make install make_install_opt1 make_install_opt2
|
||||||
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib configure_opt1 configure_opt2
|
||||||
|
make make_opt1 make_opt2
|
||||||
|
make python_make_install_target make_install_opt1 make_install_opt2 python_make_install_opt1 python_make_install_opt2
|
||||||
|
OUT
|
||||||
|
}
|
||||||
|
|
||||||
@test "apply python patch before building" {
|
@test "apply python patch before building" {
|
||||||
cached_tarball "yaml-0.1.6"
|
cached_tarball "yaml-0.1.6"
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
@@ -103,12 +146,12 @@ OUT
|
|||||||
unstub patch
|
unstub patch
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
patch -p0 --force -i $TMP/python-patch.XXX
|
patch -p0 --force -i $TMP/python-patch.XXX
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -133,12 +176,12 @@ OUT
|
|||||||
unstub patch
|
unstub patch
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
patch -p1 --force -i $TMP/python-patch.XXX
|
patch -p1 --force -i $TMP/python-patch.XXX
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -166,7 +209,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -182,7 +225,7 @@ OUT
|
|||||||
for i in {1..10}; 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..2}; do stub sw_vers '-productVersion : echo 1010'; done
|
||||||
stub brew "--prefix libyaml : echo '$brew_libdir'"
|
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
|
stub_make_install
|
||||||
|
|
||||||
install_fixture definitions/needs-yaml
|
install_fixture definitions/needs-yaml
|
||||||
@@ -194,7 +237,7 @@ OUT
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I$brew_libdir/include -I${TMP}/install/include" LDFLAGS="-L$brew_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$brew_libdir/include -I${TMP}/install/include" LDFLAGS="-L$brew_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -208,7 +251,7 @@ OUT
|
|||||||
mkdir -p "$readline_libdir"
|
mkdir -p "$readline_libdir"
|
||||||
for i in {1..8}; 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 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'"
|
stub brew "--prefix readline : echo '$readline_libdir'"
|
||||||
for i in {1..2}; do stub brew false; done
|
for i in {1..2}; do stub brew false; done
|
||||||
stub_make_install
|
stub_make_install
|
||||||
@@ -224,7 +267,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I$readline_libdir/include -I${TMP}/install/include" LDFLAGS="-L$readline_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$readline_libdir/include -I${TMP}/install/include" LDFLAGS="-L$readline_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -238,7 +281,7 @@ OUT
|
|||||||
mkdir -p "$ncurses_libdir"
|
mkdir -p "$ncurses_libdir"
|
||||||
for i in {1..9}; 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..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 "--prefix ncurses : echo '$ncurses_libdir'"
|
||||||
stub brew false
|
stub brew false
|
||||||
stub_make_install
|
stub_make_install
|
||||||
@@ -254,7 +297,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I$ncurses_libdir/include -I${TMP}/install/include" LDFLAGS="-L$ncurses_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$ncurses_libdir/include -I${TMP}/install/include" LDFLAGS="-L$ncurses_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -286,7 +329,7 @@ DEF
|
|||||||
unstub sysctl
|
unstub sysctl
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-openssl=/usr/local
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-openssl=/usr/local
|
||||||
make -j 1
|
make -j 1
|
||||||
make install
|
make install
|
||||||
@@ -321,7 +364,7 @@ DEF
|
|||||||
unstub sysctl
|
unstub sysctl
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include -I/usr/local/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I/usr/local/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 1
|
make -j 1
|
||||||
make install
|
make install
|
||||||
@@ -349,7 +392,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -364,7 +407,7 @@ OUT
|
|||||||
|
|
||||||
for i in {1..4}; do stub uname '-s : echo Linux'; done
|
for i in {1..4}; do stub uname '-s : echo Linux'; done
|
||||||
stub brew "--prefix : echo '$BREW_PREFIX'"
|
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
|
stub_make_install
|
||||||
export PYTHON_BUILD_USE_HOMEBREW=1
|
export PYTHON_BUILD_USE_HOMEBREW=1
|
||||||
|
|
||||||
@@ -378,7 +421,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -394,7 +437,7 @@ OUT
|
|||||||
|
|
||||||
for i in {1..4}; do stub uname '-s : echo Linux'; done
|
for i in {1..4}; do stub uname '-s : echo Linux'; done
|
||||||
stub brew "--prefix : echo '$BREW_PREFIX'"
|
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
|
stub_make_install
|
||||||
export PYTHON_BUILD_USE_HOMEBREW=1
|
export PYTHON_BUILD_USE_HOMEBREW=1
|
||||||
|
|
||||||
@@ -408,7 +451,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -435,7 +478,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -453,7 +496,7 @@ OUT
|
|||||||
for i in {1..8}; 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 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
|
stub_make_install
|
||||||
|
|
||||||
export PYTHON_CONFIGURE_OPTS="CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib"
|
export PYTHON_CONFIGURE_OPTS="CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib"
|
||||||
@@ -468,7 +511,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -482,11 +525,11 @@ OUT
|
|||||||
mkdir -p "$tcl_tk_libdir/lib"
|
mkdir -p "$tcl_tk_libdir/lib"
|
||||||
echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh"
|
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
|
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
|
||||||
|
|
||||||
stub brew false
|
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
|
for i in {1..3}; do stub brew false; done
|
||||||
|
|
||||||
stub_make_install
|
stub_make_install
|
||||||
@@ -502,7 +545,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/homebrew-tcl-tk/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/homebrew-tcl-tk/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=${TMP}/install --enable-shared --libdir=${TMP}/install/lib --with-tcltk-libs=-L${TMP}/homebrew-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version --with-tcltk-includes=-I${TMP}/homebrew-tcl-tk/include
|
Python-3.6.2: --prefix=${TMP}/install --enable-shared --libdir=${TMP}/install/lib --with-tcltk-libs=-L${TMP}/homebrew-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version --with-tcltk-includes=-I${TMP}/homebrew-tcl-tk/include
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -516,10 +559,10 @@ OUT
|
|||||||
tcl_tk_version_long="8.6.10"
|
tcl_tk_version_long="8.6.10"
|
||||||
tcl_tk_version="${tcl_tk_version_long%.*}"
|
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..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
|
stub_make_install
|
||||||
|
|
||||||
export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${TMP}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'"
|
export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${TMP}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'"
|
||||||
@@ -534,7 +577,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-tcltk-libs=-L${TMP}/custom-tcl-tk/lib -ltcl8.6 -ltk8.6
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-tcltk-libs=-L${TMP}/custom-tcl-tk/lib -ltcl8.6 -ltk8.6
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -544,14 +587,14 @@ OUT
|
|||||||
@test "tcl-tk is linked from Homebrew via pkgconfig only when envvar is set" {
|
@test "tcl-tk is linked from Homebrew via pkgconfig only when envvar is set" {
|
||||||
cached_tarball "Python-3.6.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 1010'; done
|
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
|
||||||
|
|
||||||
tcl_tk_libdir="$TMP/homebrew-tcl-tk"
|
tcl_tk_libdir="$TMP/homebrew-tcl-tk"
|
||||||
mkdir -p "$tcl_tk_libdir/lib"
|
mkdir -p "$tcl_tk_libdir/lib"
|
||||||
|
|
||||||
stub brew false
|
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
|
for i in {1..3}; do stub brew false; done
|
||||||
|
|
||||||
stub_make_install
|
stub_make_install
|
||||||
@@ -568,7 +611,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/homebrew-tcl-tk/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/homebrew-tcl-tk/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=${TMP}/install --enable-shared --libdir=${TMP}/install/lib
|
Python-3.6.2: --prefix=${TMP}/install --enable-shared --libdir=${TMP}/install/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -594,7 +637,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -622,7 +665,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 4
|
make -j 4
|
||||||
make install
|
make install
|
||||||
@@ -651,7 +694,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 1
|
make -j 1
|
||||||
make install
|
make install
|
||||||
@@ -675,41 +718,13 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install DOGE="such wow"
|
make install DOGE="such wow"
|
||||||
OUT
|
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..9}; do stub uname '-s : echo Linux'; done
|
|
||||||
|
|
||||||
stub_make_install
|
|
||||||
|
|
||||||
export CONFIGURE_OPTS="--custom-configure"
|
|
||||||
export PYTHON_CONFIGURE_OPTS='--custom-python-configure'
|
|
||||||
export MAKE_OPTS="${MAKE_OPTS:+$MAKE_OPTS }--custom-make"
|
|
||||||
export PYTHON_MAKE_OPTS="--custom-python-make"
|
|
||||||
export PYTHON_MAKE_INSTALL_OPTS="--custom-make-install"
|
|
||||||
run_inline_definition <<DEF
|
|
||||||
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
|
||||||
DEF
|
|
||||||
assert_success
|
|
||||||
|
|
||||||
unstub uname
|
|
||||||
unstub make
|
|
||||||
|
|
||||||
assert_build_log <<OUT
|
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --custom-configure --custom-python-configure
|
|
||||||
make -j 2 --custom-make --custom-python-make
|
|
||||||
make install --custom-make-install
|
|
||||||
OUT
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "--enable-shared is not added if --disable-shared is passed" {
|
@test "--enable-shared is not added if --disable-shared is passed" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
@@ -727,7 +742,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib --disable-shared
|
Python-3.6.2: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib --disable-shared
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -739,7 +754,7 @@ OUT
|
|||||||
|
|
||||||
for i in {1..10}; 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..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
|
stub_make_install
|
||||||
|
|
||||||
run_inline_definition <<DEF
|
run_inline_definition <<DEF
|
||||||
@@ -754,7 +769,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib --with-dsymutil
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib --with-dsymutil
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -777,7 +792,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -867,7 +882,7 @@ DEF
|
|||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
apply -p1 -i /my/patch.diff
|
apply -p1 -i /my/patch.diff
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -888,54 +903,6 @@ OUT
|
|||||||
assert_success "hello world"
|
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" {
|
@test "non-writable TMPDIR aborts build" {
|
||||||
export TMPDIR="${TMP}/build"
|
export TMPDIR="${TMP}/build"
|
||||||
mkdir -p "$TMPDIR"
|
mkdir -p "$TMPDIR"
|
||||||
|
|||||||
@@ -15,9 +15,10 @@ after_install 'echo after: \$STATUS'
|
|||||||
OUT
|
OUT
|
||||||
stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash"
|
stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash"
|
||||||
stub pyenv-rehash "echo rehashed"
|
stub pyenv-rehash "echo rehashed"
|
||||||
stub pyenv-latest false
|
|
||||||
|
|
||||||
definition="${TMP}/3.6.2"
|
definition="${TMP}/3.6.2"
|
||||||
|
stub pyenv-latest "echo $definition"
|
||||||
|
|
||||||
cat > "$definition" <<<"echo python-build"
|
cat > "$definition" <<<"echo python-build"
|
||||||
run pyenv-install "$definition"
|
run pyenv-install "$definition"
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user