mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-08 11:33:49 -05:00
Compare commits
205 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
af1a54482b | ||
|
|
64c70feb08 | ||
|
|
7b713a88c4 | ||
|
|
1874f95a0e | ||
|
|
1a882c6053 | ||
|
|
05dcd45741 | ||
|
|
a2dff4809b | ||
|
|
ad0d131032 | ||
|
|
7c17c741eb | ||
|
|
ba8b58f90d | ||
|
|
fe76b05445 | ||
|
|
c5d2639082 | ||
|
|
d4bd7bbe2b | ||
|
|
38ac747239 | ||
|
|
8f655d2ca6 | ||
|
|
d0b78fd5fe | ||
|
|
43f40eca05 | ||
|
|
687944d991 | ||
|
|
0f337a6c9a | ||
|
|
afe2615a1c | ||
|
|
d7d5ab5148 | ||
|
|
e79dd97afa | ||
|
|
021b6c2da0 | ||
|
|
e008430451 | ||
|
|
09fc5b8824 | ||
|
|
6eeda1f87e | ||
|
|
452647ab33 | ||
|
|
4086e452fd | ||
|
|
82c8d511c4 | ||
|
|
578c7507c6 | ||
|
|
23c727a767 | ||
|
|
fb73c4b714 | ||
|
|
3fa5812bfc | ||
|
|
c8a23e26e6 | ||
|
|
def5cd994e | ||
|
|
b5576240a2 | ||
|
|
920ef1456a | ||
|
|
528d10e96f | ||
|
|
cf9d0dcd7b | ||
|
|
aa5fd27e2f | ||
|
|
73b6307399 | ||
|
|
a57e0b5019 | ||
|
|
b3c91b37d6 | ||
|
|
777089466d | ||
|
|
20189ff06f | ||
|
|
5a8dbcf143 | ||
|
|
9a4f9c2511 | ||
|
|
bee178a95d | ||
|
|
0f75cd8800 | ||
|
|
29c4f279a3 | ||
|
|
be4939604e | ||
|
|
fc616a0aee | ||
|
|
b613a4abeb | ||
|
|
b1ee6c93c4 | ||
|
|
9fad1f46c5 | ||
|
|
f51d3dcb47 | ||
|
|
deb4935187 | ||
|
|
e28d747b83 | ||
|
|
ddd37eb823 | ||
|
|
be2bd5f03d | ||
|
|
4ef81b5c7a | ||
|
|
6bb75b3ba7 | ||
|
|
f507d08064 | ||
|
|
ad15c75e0e | ||
|
|
6052caa038 | ||
|
|
e8a4b54231 | ||
|
|
bcbdadf10d | ||
|
|
904dd5f828 | ||
|
|
3226a1870b | ||
|
|
0d19efecf5 | ||
|
|
ecab7b0d17 | ||
|
|
3bfc97ad29 | ||
|
|
276ce32643 | ||
|
|
b30508f9b8 | ||
|
|
0e80d0725b | ||
|
|
6bec7a50fe | ||
|
|
28be65992d | ||
|
|
68918e69b7 | ||
|
|
86a4423bbb | ||
|
|
0ab9683e58 | ||
|
|
7fe647968d | ||
|
|
c8daaa3954 | ||
|
|
88be70722f | ||
|
|
47d88d2c5f | ||
|
|
6b758c8cf9 | ||
|
|
017b6d877e | ||
|
|
063aa457e4 | ||
|
|
fcd7806529 | ||
|
|
a3f0bddc2a | ||
|
|
f72c1712dc | ||
|
|
a7b181c3ca | ||
|
|
c8c324afb4 | ||
|
|
72c5b034ca | ||
|
|
446411dc64 | ||
|
|
9fe80f28e5 | ||
|
|
9248255f70 | ||
|
|
368e04f3fa | ||
|
|
76e93b073e | ||
|
|
e3fe82a9b1 | ||
|
|
dd60d5fae2 | ||
|
|
96828af31e | ||
|
|
c998eae677 | ||
|
|
c20fc7bd6a | ||
|
|
f1a1f59c87 | ||
|
|
b64b0ab5e2 | ||
|
|
1a0b555baf | ||
|
|
819e2b8f45 | ||
|
|
bd618ea9ef | ||
|
|
b77b0be089 | ||
|
|
906246da4c | ||
|
|
12e74e147a | ||
|
|
2b0dd7355d | ||
|
|
f40397088c | ||
|
|
e447fe5b73 | ||
|
|
4242694a0e | ||
|
|
83619f3fbe | ||
|
|
4bd8a975f4 | ||
|
|
2a5bbf6cb5 | ||
|
|
b9a27af7b8 | ||
|
|
c03d9cf84c | ||
|
|
c7f2c4db45 | ||
|
|
3bc3a624db | ||
|
|
f4598bc1f0 | ||
|
|
fc4c0ac52d | ||
|
|
579c34e570 | ||
|
|
2369ac2a08 | ||
|
|
25c974d59a | ||
|
|
2ea797e226 | ||
|
|
7d7f8b94ae | ||
|
|
e715e03be0 | ||
|
|
b3a5b5eee3 | ||
|
|
894bcd8717 | ||
|
|
03ee3ffd32 | ||
|
|
3d83bcdbef | ||
|
|
f897c50202 | ||
|
|
773c65416b | ||
|
|
ca1593c80e | ||
|
|
cb5da5e831 | ||
|
|
31f372034d | ||
|
|
ff93c58bab | ||
|
|
2bb59169db | ||
|
|
f9e519611a | ||
|
|
ae04877154 | ||
|
|
e82e12739c | ||
|
|
6b9795728e | ||
|
|
23576296ae | ||
|
|
2128b4f27d | ||
|
|
9ba6124833 | ||
|
|
6c63e086e9 | ||
|
|
540c94bdb1 | ||
|
|
18f62f266d | ||
|
|
49cc88094a | ||
|
|
cad18bb332 | ||
|
|
79fdf1e3bb | ||
|
|
03bba03291 | ||
|
|
cf50e2a2db | ||
|
|
b3d52b05d2 | ||
|
|
73dc5547fc | ||
|
|
3f0dd1962f | ||
|
|
48b0224aaf | ||
|
|
8cfa967d74 | ||
|
|
a57106c932 | ||
|
|
189e73e5e8 | ||
|
|
8680247381 | ||
|
|
606ff454a1 | ||
|
|
b05d15f673 | ||
|
|
881ba40ff4 | ||
|
|
58bbbf8880 | ||
|
|
c1674cd552 | ||
|
|
74f923b5fc | ||
|
|
59c560893a | ||
|
|
4971d9e35e | ||
|
|
6d13db992f | ||
|
|
13d8568620 | ||
|
|
cc56f76733 | ||
|
|
4c261e6ea1 | ||
|
|
31355676f0 | ||
|
|
c162dcd932 | ||
|
|
0b6320d371 | ||
|
|
3bfaa33c1b | ||
|
|
cd2858aa17 | ||
|
|
19359de7b8 | ||
|
|
8dd46e3915 | ||
|
|
ed1083ec27 | ||
|
|
904fe964b0 | ||
|
|
036fd63bbd | ||
|
|
1250d7dd30 | ||
|
|
ad6a950734 | ||
|
|
6da0e89207 | ||
|
|
e03118235a | ||
|
|
a8f921ce4d | ||
|
|
4a031504db | ||
|
|
75022d5d7c | ||
|
|
a12f947cc3 | ||
|
|
0b5e16add3 | ||
|
|
5b0ac41dec | ||
|
|
44510a68f1 | ||
|
|
16c4924f22 | ||
|
|
ac30d5f4e4 | ||
|
|
9f5dcbffd4 | ||
|
|
faceb4b79c | ||
|
|
d7389c10ee | ||
|
|
0726e02e3a | ||
|
|
03a5d65387 | ||
|
|
776f6ff9fa |
11
.editorconfig
Normal file
11
.editorconfig
Normal file
@@ -0,0 +1,11 @@
|
||||
# Editor configuration, see https://editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
|
||||
# Makefiles always use tabs for indentation
|
||||
[Makefile]
|
||||
indent_style = tab
|
||||
indent_size = unset # Allow user-defined tab width
|
||||
5
.github/ISSUE_TEMPLATE.md
vendored
5
.github/ISSUE_TEMPLATE.md
vendored
@@ -19,3 +19,8 @@ Make sure you have checked all steps below.
|
||||
- [ ] C Compiler information (e.g. gcc 7.3):
|
||||
- [ ] Please attach the debug trace of the failing command as a gist:
|
||||
* Run `env PYENV_DEBUG=1 <faulty command> 2>&1 | tee trace.log` and attach `trace.log`. E.g. if you have a problem with installing Python, run `env PYENV_DEBUG=1 pyenv install -v <version> 2>&1 | tee trace.log` (note the `-v` option to `pyenv install`).
|
||||
- [ ] If you have a problem with installing Python, please also attach `config.log` from the build directory
|
||||
* The build directory is reported after the "BUILD FAILED" message and is usually under `/tmp`.
|
||||
- [ ] If the build succeeds but the problem is still with the build process (e.g. the resulting Python is missing a feature), please attach
|
||||
* the debug trace from reinstalling the faulty version with `env PYENV_DEBUG=1 pyenv install -f -k -v <version> 2>&1 | tee trace.log`
|
||||
* `config.log` from the build directory. When using `pyenv install` with `-k` as per above, the build directory will be under `$PYENV_ROOT/sources`.
|
||||
|
||||
15
.github/workflows/macos_build.yml
vendored
15
.github/workflows/macos_build.yml
vendored
@@ -1,18 +1,23 @@
|
||||
name: macos_build
|
||||
on: [pull_request, push]
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
macos_build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version:
|
||||
- 3.7.13
|
||||
- 3.8.13
|
||||
- 3.9.13
|
||||
- 3.10.6
|
||||
- "3.7"
|
||||
- "3.8"
|
||||
- "3.9"
|
||||
- "3.10"
|
||||
- "3.11"
|
||||
runs-on: macos-11
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
# Normally, we would use the superbly maintained...
|
||||
# - uses: actions/setup-python@v2
|
||||
# with:
|
||||
|
||||
53
.github/workflows/modified_scripts_build.yml
vendored
53
.github/workflows/modified_scripts_build.yml
vendored
@@ -6,7 +6,7 @@ jobs:
|
||||
outputs:
|
||||
versions: ${{steps.modified-versions.outputs.versions}}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- run: git fetch origin "$GITHUB_BASE_REF"
|
||||
- shell: bash
|
||||
run: >
|
||||
@@ -15,7 +15,10 @@ jobs:
|
||||
if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& )
|
||||
{ print $1.$2; }' \
|
||||
| sort -u);
|
||||
echo -e "versions<<!\\n$versions\\n!" >> $GITHUB_ENV
|
||||
EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64);
|
||||
echo "versions<<$EOF" >> $GITHUB_ENV;
|
||||
echo "$versions" >> $GITHUB_ENV;
|
||||
echo "$EOF" >> $GITHUB_ENV;
|
||||
- id: modified-versions
|
||||
run: |
|
||||
echo -n "::set-output name=versions::"
|
||||
@@ -30,28 +33,38 @@ jobs:
|
||||
os: ["macos-11", "macos-12"]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: |
|
||||
brew install openssl openssl@1.1 readline sqlite3 xz zlib
|
||||
- uses: actions/checkout@v3
|
||||
- run: |
|
||||
#envvars
|
||||
export PYENV_ROOT="$GITHUB_WORKSPACE"
|
||||
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
|
||||
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
||||
- run: |
|
||||
#prerequisites
|
||||
brew install openssl openssl@1.1 readline sqlite3 xz zlib
|
||||
if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then
|
||||
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: >
|
||||
- run: |
|
||||
#print version
|
||||
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
|
||||
python -c 'import sys; print(sys.version)'
|
||||
else
|
||||
python --version;
|
||||
python --version
|
||||
python -m pip --version
|
||||
fi
|
||||
# Micropython doesn't support sys.executable, os.path, older versions even os
|
||||
- env:
|
||||
EXPECTED_PYTHON: ${{ matrix.python-version }}
|
||||
run: |
|
||||
#check
|
||||
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
|
||||
[[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1
|
||||
python -c 'import sys; assert sys.implementation.name == "micropython"'
|
||||
@@ -80,31 +93,41 @@ jobs:
|
||||
os: ["ubuntu-20.04", "ubuntu-22.04"]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- run: |
|
||||
sudo apt-get update -q; sudo apt-get install -yq 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
|
||||
- uses: actions/checkout@v3
|
||||
- run: |
|
||||
#envvars
|
||||
export PYENV_ROOT="$GITHUB_WORKSPACE"
|
||||
echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV
|
||||
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
||||
- run: |
|
||||
#prerequisites
|
||||
sudo apt-get update -q; sudo apt-get install -yq make build-essential \
|
||||
libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
|
||||
curl llvm libncurses5-dev libncursesw5-dev \
|
||||
xz-utils tk-dev libffi-dev liblzma-dev
|
||||
if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then
|
||||
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: >
|
||||
- run: |
|
||||
#print version
|
||||
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
|
||||
python -c 'import sys; print(sys.version)'
|
||||
else
|
||||
python --version;
|
||||
python --version
|
||||
python -m pip --version
|
||||
fi
|
||||
# Micropython doesn't support sys.executable, os.path, older versions even os
|
||||
- env:
|
||||
EXPECTED_PYTHON: ${{ matrix.python-version }}
|
||||
run: |
|
||||
#check
|
||||
if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then
|
||||
[[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1
|
||||
python -c 'import sys; assert sys.implementation.name == "micropython"'
|
||||
|
||||
56
.github/workflows/no-response.yml
vendored
56
.github/workflows/no-response.yml
vendored
@@ -1,26 +1,30 @@
|
||||
name: No Response
|
||||
|
||||
# Both `issue_comment` and `scheduled` event types are required for this Action
|
||||
# to work properly.
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
schedule:
|
||||
# Schedule for ten minutes after the hour, every hour
|
||||
- cron: '10 * * * *'
|
||||
|
||||
jobs:
|
||||
noResponse:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: lee-dohm/no-response@v0.5.0
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
daysUntilClose: 30
|
||||
responseRequiredLabel: need-feedback
|
||||
closeComment: >
|
||||
This issue has been automatically closed because there has been no response
|
||||
to our request for more information from the original author. With only the
|
||||
information that is currently in the issue, we don't have enough information
|
||||
to take action. Please reach out if you have or find the answers we need so
|
||||
that we can investigate further.
|
||||
name: No Response
|
||||
|
||||
# Both `issue_comment` and `scheduled` event types are required for this Action
|
||||
# to work properly.
|
||||
on:
|
||||
issue_comment:
|
||||
types: [created]
|
||||
schedule:
|
||||
# Schedule for ten minutes after the hour, every hour
|
||||
- cron: '10 * * * *'
|
||||
|
||||
permissions: {}
|
||||
jobs:
|
||||
noResponse:
|
||||
permissions:
|
||||
issues: write # to update issues (lee-dohm/no-response)
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: lee-dohm/no-response@v0.5.0
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
daysUntilClose: 30
|
||||
responseRequiredLabel: need-feedback
|
||||
closeComment: >
|
||||
This issue has been automatically closed because there has been no response
|
||||
to our request for more information from the original author. With only the
|
||||
information that is currently in the issue, we don't have enough information
|
||||
to take action. Please reach out if you have or find the answers we need so
|
||||
that we can investigate further.
|
||||
|
||||
11
.github/workflows/pyenv_tests.yml
vendored
11
.github/workflows/pyenv_tests.yml
vendored
@@ -1,5 +1,9 @@
|
||||
name: pyenv_tests
|
||||
on: [pull_request, push]
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
pyenv_tests:
|
||||
strategy:
|
||||
@@ -12,7 +16,7 @@ jobs:
|
||||
- macos-11
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
# Normally, we would use the superbly maintained...
|
||||
# - uses: actions/setup-python@v2
|
||||
# with:
|
||||
@@ -38,3 +42,8 @@ jobs:
|
||||
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
||||
- run: |
|
||||
make test
|
||||
- env:
|
||||
PYENV_NATIVE_EXT: 1
|
||||
run: |
|
||||
(cd src; ./configure; make)
|
||||
bats/bin/bats test/{pyenv,hooks,versions}.bats
|
||||
17
.github/workflows/ubuntu_build.yml
vendored
17
.github/workflows/ubuntu_build.yml
vendored
@@ -1,25 +1,30 @@
|
||||
name: ubuntu_build
|
||||
on: [pull_request, push]
|
||||
|
||||
permissions:
|
||||
contents: read # to fetch code (actions/checkout)
|
||||
|
||||
jobs:
|
||||
ubuntu_build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version:
|
||||
- 3.7.13
|
||||
- 3.8.13
|
||||
- 3.9.13
|
||||
- 3.10.6
|
||||
- "3.7"
|
||||
- "3.8"
|
||||
- "3.9"
|
||||
- "3.10"
|
||||
- "3.11"
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
# Normally, we would use the superbly maintained...
|
||||
# - uses: actions/setup-python@v2
|
||||
# with:
|
||||
# python-version: ${{ matrix.python-version }}
|
||||
# ... but in the repo, we want to test pyenv builds on Ubuntu
|
||||
- run: |
|
||||
sudo apt-get install -yq make build-essential libssl-dev zlib1g-dev \
|
||||
sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \
|
||||
libbz2-dev libreadline-dev libsqlite3-dev curl \
|
||||
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
|
||||
# https://github.com/pyenv/pyenv#installation
|
||||
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -8,3 +8,5 @@
|
||||
/src/*.o
|
||||
/bats/
|
||||
/default-packages
|
||||
.idea
|
||||
*.un~
|
||||
|
||||
148
CHANGELOG.md
148
CHANGELOG.md
@@ -1,4 +1,150 @@
|
||||
## Version History
|
||||
# Version History
|
||||
|
||||
## Release v2.3.22
|
||||
|
||||
* Add CPython 3.12.0b3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2730
|
||||
* Add Cinder 3.10 and Cinder configure patches by @filips123 in https://github.com/pyenv/pyenv/pull/2739
|
||||
|
||||
## Release v2.3.21
|
||||
|
||||
* Add graalpy-23.0.0 by @msimacek in https://github.com/pyenv/pyenv/pull/2724
|
||||
* Add PyPy 7.3.12 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2726
|
||||
* Fix occasional 'libexec/pyenv-latest: line 39: printf: write error: Broken pipe' by @native-api in https://github.com/pyenv/pyenv/pull/2729
|
||||
|
||||
## Release v2.3.20
|
||||
|
||||
* Backport bpo-42351 to 3.5.10 by @native-api in https://github.com/pyenv/pyenv/pull/2717
|
||||
* Add missing patches for Python 3.7/3.8/3.9 by @tomkins in https://github.com/pyenv/pyenv/pull/2718
|
||||
|
||||
## Release v2.3.19
|
||||
|
||||
* Add CPython 3.7.17, 3.8.17 and 3.9.17 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2711
|
||||
* Add CPython 3.11.4 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2715
|
||||
* Add CPython 3.10.12 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2714
|
||||
* Add CPython 3.12.0b2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2713
|
||||
|
||||
## Release 2.3.18
|
||||
|
||||
* Fix not showing symlink contents for unselected versions in `pyenv versions` by @native-api in https://github.com/pyenv/pyenv/pull/2675
|
||||
* Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3 by @mirekdlugosz in https://github.com/pyenv/pyenv/pull/2677
|
||||
* Fix #2682: Correct pyenv_user_setup.bash file by @tomschr in https://github.com/pyenv/pyenv/pull/2687
|
||||
* fix: updating heredoc delimiter to be random and unique by @aviadhahami in https://github.com/pyenv/pyenv/pull/2691
|
||||
* Support ksh alternative names by @kpschoedel in https://github.com/pyenv/pyenv/pull/2697
|
||||
* Add CPython 3.12.0b1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2701
|
||||
* Update 3.12-dev and add 3.13-dev by @t0b3 in https://github.com/pyenv/pyenv/pull/2703
|
||||
|
||||
## Release 2.3.17
|
||||
|
||||
* Try locate `readlink` first in pyenv-hooks, fix #2654 by @Harry-Chen in https://github.com/pyenv/pyenv/pull/2655
|
||||
* Add CPython 3.12.0a7 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2668
|
||||
* Add CPython 3.11.3 by @mirekdlugosz in https://github.com/pyenv/pyenv/pull/2671
|
||||
* Add CPython 3.10.11 by @mirekdlugosz in https://github.com/pyenv/pyenv/pull/2670
|
||||
|
||||
## Release 2.3.16
|
||||
|
||||
* Add Miniforge3-22.11.1-4 by @jlec in https://github.com/pyenv/pyenv/pull/2642
|
||||
* Add Anaconda3-2023.03 by @anton-petrov in https://github.com/pyenv/pyenv/pull/2648
|
||||
|
||||
## Release 2.3.15
|
||||
|
||||
* Add miniconda 23.1.0-1 by @aphedges in https://github.com/pyenv/pyenv/pull/2635
|
||||
* Add CPython 3.12.0a6 by @saaketp in https://github.com/pyenv/pyenv/pull/2638
|
||||
|
||||
## Release 2.3.14
|
||||
|
||||
* Fix indentation by @rafrafek in https://github.com/pyenv/pyenv/pull/2620
|
||||
* Support for "BusyBox version" of "head" by @schuellerf in https://github.com/pyenv/pyenv/pull/2629
|
||||
* bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms by @chaimleib in https://github.com/pyenv/pyenv/pull/2630
|
||||
* bpo-36231 for v3.5.10: fix Unsupported MacOS X CPU type in ffi.h by @chaimleib in https://github.com/pyenv/pyenv/pull/2633
|
||||
* README: clarify behavior of `pyenv latest` by @mrienstra in https://github.com/pyenv/pyenv/pull/2634
|
||||
|
||||
## Release 2.3.13
|
||||
|
||||
* Fix pyenv-latest to ignore virtualenvs by @native-api in https://github.com/pyenv/pyenv/pull/2608
|
||||
* Show symlink contents in non-bare `pyenv versions' by @native-api in https://github.com/pyenv/pyenv/pull/2609
|
||||
* Ignore virtualenvs in `pyenv latest' in a clean way by @native-api in https://github.com/pyenv/pyenv/pull/2610
|
||||
* Fix link resolving in pyenv-versions by @laggardkernel in https://github.com/pyenv/pyenv/pull/2612
|
||||
* Add CPython 3.11.2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2615
|
||||
* Add CPython 3.10.10 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2616
|
||||
* Add CPython 3.12.0a5 by @Afront in https://github.com/pyenv/pyenv/pull/2614
|
||||
|
||||
## Release 2.3.12
|
||||
|
||||
* Undefined name: do not forget self when accessing flavor by @cclauss in https://github.com/pyenv/pyenv/pull/2595
|
||||
* Fix wrong libpython being linked to in MacOS by @native-api in https://github.com/pyenv/pyenv/pull/2596
|
||||
* Fix `:latest` by @native-api in https://github.com/pyenv/pyenv/pull/2599
|
||||
* Fix `pyenv which` to support auto-resolved prefixes by @native-api in https://github.com/pyenv/pyenv/pull/2601
|
||||
* Add more recent build of nogil Python. by @colesbury in https://github.com/pyenv/pyenv/pull/2602
|
||||
|
||||
## Release 2.3.11
|
||||
|
||||
* Add CPython 3.12.0a4 by @Afront in https://github.com/pyenv/pyenv/pull/2590
|
||||
* Add a script to add the latest miniforge and mambaforge versions by @smcgivern in https://github.com/pyenv/pyenv/pull/2560
|
||||
* Add missing Miniforge/Mambaforge versions (4.10.2-0 - 22.9.0-3) by @smcgivern in https://github.com/pyenv/pyenv/pull/2591
|
||||
* Fix using dependencies from Ports in FreeBSD that are not searched with pkg-config by @native-api in https://github.com/pyenv/pyenv/pull/2593
|
||||
* Fix priority for user-supplied configure and make flags by (**_only set --enable-shared if user hasn't supplied --disable-shared_**) @native-api in https://github.com/pyenv/pyenv/pull/2592
|
||||
* Fix a compilation error in 3.8.10+ and 3.9.5+ when linking against Op… by @native-api in https://github.com/pyenv/pyenv/pull/2594
|
||||
|
||||
## Release 2.3.10
|
||||
|
||||
* Remove stray newline after python-build installation by @tklauser in https://github.com/pyenv/pyenv/pull/2566
|
||||
* Allow multiple versions for pyenv-install by @rockandska in https://github.com/pyenv/pyenv/pull/2568
|
||||
* --enable-shared by default by @anton-petrov in https://github.com/pyenv/pyenv/pull/2554
|
||||
* Fix non-bash output while detecting shell by @ianchen-tw in https://github.com/pyenv/pyenv/pull/2561
|
||||
* add pypy 7.3.11 release by @dand-oss in https://github.com/pyenv/pyenv/pull/2576
|
||||
* Mention how to build for maximum performance by @hauntsaninja in https://github.com/pyenv/pyenv/pull/2579
|
||||
* Add miniconda 22.11.1-1 by @aphedges in https://github.com/pyenv/pyenv/pull/2583
|
||||
* Add Fig as autocomplete suggestion by @brendanfalk in https://github.com/pyenv/pyenv/pull/2574
|
||||
* Fix using dependencies from Ports in BSD with no pkg-config by @native-api in https://github.com/pyenv/pyenv/pull/2586
|
||||
|
||||
## Release 2.3.9
|
||||
|
||||
* Add -latest suffix to miniforge3 by @nwh in https://github.com/pyenv/pyenv/pull/2551
|
||||
* Add PyPy 7.3.10 by @dand-oss in https://github.com/pyenv/pyenv/pull/2553
|
||||
* Add miniforge3 and mambaforge 22.9.0-2 by @smcgivern in https://github.com/pyenv/pyenv/pull/2559
|
||||
* Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.16 by @lisbethw1130 in https://github.com/pyenv/pyenv/pull/2558
|
||||
* Add `openssl` patches for 3.7.15, 3.7.16, and 3.8.16 by @samdoran in https://github.com/pyenv/pyenv/pull/2564
|
||||
* Add support for Anaconda3-2022.10 by @huypn12 in https://github.com/pyenv/pyenv/pull/2565
|
||||
|
||||
## Release 2.3.8
|
||||
|
||||
* Export detected shell environment in pyenv-init by @ianchen-tw in https://github.com/pyenv/pyenv/pull/2540
|
||||
* Add CPython 3.12.0a3 by @saaketp in https://github.com/pyenv/pyenv/pull/2545
|
||||
* Add CPython 3.11.1 by @anton-petrov in https://github.com/pyenv/pyenv/pull/2549
|
||||
* Add CPython 3.10.9 by @rudisimo in https://github.com/pyenv/pyenv/pull/2544
|
||||
* Add 3.7.16, 3.8.16, 3.9.16 by @chadac in https://github.com/pyenv/pyenv/pull/2550
|
||||
|
||||
## Release 2.3.7
|
||||
|
||||
* Add Python version 3.11 to the macOS build by @jbkkd in https://github.com/pyenv/pyenv/pull/2510
|
||||
* Don't use Zlib from XCode SDK if a custom compiler is used by @native-api in https://github.com/pyenv/pyenv/pull/2516
|
||||
* Change line endings from CRLF to LF by @hoang-himself in https://github.com/pyenv/pyenv/pull/2517
|
||||
* Fix resolution of a name that's a prefix of another name by @native-api in https://github.com/pyenv/pyenv/pull/2521
|
||||
* GitHub Workflows security hardening by @sashashura in https://github.com/pyenv/pyenv/pull/2511
|
||||
* Add nushell to activate list by @theref in https://github.com/pyenv/pyenv/pull/2524
|
||||
* Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.15 and 3.8.15 by @twangboy in https://github.com/pyenv/pyenv/pull/2520
|
||||
* Add simple `.editorconfig` file by @aphedges in https://github.com/pyenv/pyenv/pull/2518
|
||||
* Support `aria2c` being a snap by @native-api in https://github.com/pyenv/pyenv/pull/2528
|
||||
* Add CPython 3.12.0a2 by @saaketp in https://github.com/pyenv/pyenv/pull/2527
|
||||
* Add --no-push-path option by @isaacl in https://github.com/pyenv/pyenv/pull/2526
|
||||
* Fix typo in README.md by @weensy in https://github.com/pyenv/pyenv/pull/2535
|
||||
* Copy auto installer oneliner to readme by @spookyuser in https://github.com/pyenv/pyenv/pull/2538
|
||||
|
||||
## Release 2.3.6
|
||||
|
||||
* Add CPython 3.10.8 (#2480)
|
||||
* Add CPython 3.7.15, 3.8.15, and 3.9.15 (#2482)
|
||||
* Add CPython 3.11.0 (#2493)
|
||||
* Add CPython 3.12.0a1 (#2495)
|
||||
* Add graalpy-22.3.0 (#2497)
|
||||
* Auto-resolve prefixes to the latest version (#2487)
|
||||
* It must be a full prefix -- the actual searched prefix is `<prefix>[-.]`
|
||||
* Other flavors are likely sorted incorrectly atm
|
||||
* Prereleases and versions with some suffixes (`-dev`, `-src`, `-latest`) are not searched
|
||||
* `pyenv uninstall` has been excluded from the resolution feature: deleting a dynamically selected installation could be problematic
|
||||
* Fix OpenSSL 1.1.1q compilation error in MacOS 11+ (#2500)
|
||||
* Link to Tcl/Tk from Homebrew via pkgconfig for 3.11+ (#2501)
|
||||
* Fix syntax error in `pyenv init -` if PYENV_ROOT has spaces (#2506)
|
||||
|
||||
## Release 2.3.5
|
||||
|
||||
|
||||
25
COMMANDS.md
25
COMMANDS.md
@@ -20,6 +20,7 @@ The most common subcommands are:
|
||||
* [`pyenv exec`](#pyenv-exec)
|
||||
* [`pyenv root`](#pyenv-root)
|
||||
* [`pyenv prefix`](#pyenv-prefix)
|
||||
* [`pyenv latest`](#pyenv-latest)
|
||||
* [`pyenv hooks`](#pyenv-hooks)
|
||||
* [`pyenv shims`](#pyenv-shims)
|
||||
* [`pyenv init`](#pyenv-init)
|
||||
@@ -228,7 +229,13 @@ Then install the desired versions:
|
||||
2.6.8
|
||||
* 2.7.6 (set by /home/yyuu/.pyenv/version)
|
||||
|
||||
To install the latest version of Python without giving a specific version use the `:latest` syntax. For example, to install the latest patch version for Python 3.8 you could do:
|
||||
You can also install the latest version of Python in a specific version line by supplying a prefix instead of a complete name:
|
||||
|
||||
$ pyenv install 3.10
|
||||
|
||||
See the [`pyenv latest` documentation](#pyenv-latest) for details on prefix resolution.
|
||||
|
||||
An older option is to use the `:latest` syntax. For example, to install the latest patch version for Python 3.8 you could do:
|
||||
|
||||
pyenv install 3.8:latest
|
||||
|
||||
@@ -330,6 +337,19 @@ locations of the currently selected versions.
|
||||
$ pyenv prefix 3.9.7
|
||||
/home/user/.pyenv/versions/3.9.7
|
||||
|
||||
## `pyenv latest`
|
||||
|
||||
Displays the latest installed or known version with the given prefix
|
||||
|
||||
Usage: pyenv latest [-k|--known] [-q|--quiet] <prefix>
|
||||
|
||||
-k/--known Select from all known versions instead of installed
|
||||
-q/--quiet Do not print an error message on resolution failure
|
||||
|
||||
Only full prefixes are searched: in the actual name, the given prefix must be followed by a dot or a dash.
|
||||
|
||||
Prereleases and versions with specific suffixes (e.g. `-src`) are ignored.
|
||||
|
||||
## `pyenv hooks`
|
||||
|
||||
Lists installed hook scripts for a given pyenv command.
|
||||
@@ -366,11 +386,12 @@ List existing pyenv shims.
|
||||
|
||||
Configure the shell environment for pyenv
|
||||
|
||||
Usage: eval "$(pyenv init [-|--path] [--no-rehash] [<shell>])"
|
||||
Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [<shell>])"
|
||||
|
||||
- Initialize shims directory, print PYENV_SHELL variable, completions path
|
||||
and shell function
|
||||
--path Print shims path
|
||||
--no-push-path Do not push shim to the start of PATH if they're already there
|
||||
--no-rehash Add no rehash command to output
|
||||
|
||||
## `pyenv completions`
|
||||
|
||||
218
CONTRIBUTING.md
218
CONTRIBUTING.md
@@ -1,109 +1,109 @@
|
||||
General guidance
|
||||
================
|
||||
|
||||
* The usual principles of respecting existing conventions and making sure that your changes
|
||||
are in line with the overall product design apply when contributing code to Pyenv.
|
||||
|
||||
* We are limited to Bash 3.2 features
|
||||
|
||||
That's because that's the version shipped with MacOS.
|
||||
(They didn't upgrade past it and switched to Zsh because later versions
|
||||
are covered by GPLv3 which has additional restrictions unacceptable for Apple.)
|
||||
|
||||
You can still add performance optimizations etc that take advantage of newer Bash features
|
||||
as long as there is a fallback execution route for Bash 3.
|
||||
|
||||
* Be extra careful when submitting logic specific for the Apple Silicon platform
|
||||
|
||||
As of this writing, Github Actions do not support it and only one team member has the necessary hardware.
|
||||
So we may be unable to test your changes and may have to take your word for it.
|
||||
|
||||
|
||||
Formatting PRs
|
||||
==============
|
||||
|
||||
We strive to keep commit history one-concern-per-commit to keep it meaningful and easy to follow.
|
||||
If a pull request (PR) addresses a single concern (the typical case), we usually squash commits
|
||||
from it together when merging so its commit history doesn't matter.
|
||||
If however a PR addresses multiple separate concerns, each of them should be presented as a separate commit.
|
||||
Adding multiple new Python releases of the same flavor is okay with either a single or multiple commits.
|
||||
|
||||
|
||||
Authoring installation scripts
|
||||
==============================
|
||||
|
||||
Adding new Python release support
|
||||
---------------------------------
|
||||
|
||||
The easiest way to add support for a new Python release is to copy the script from the previous one
|
||||
and adjust it as necessary. In many cases, just changing version numbers, URLs and hashes is enough.
|
||||
Do pay attention to other "magic numbers" that may be present in a script --
|
||||
e.g. the set of architectures and OS versions supported by a release -- since those change from time to time, too.
|
||||
|
||||
Make sure to also copy any patches for the previous release that still apply to the new one.
|
||||
Typically, a patch no longer applies if it addresses a problem that's already fixed in the new release.
|
||||
|
||||
For prereleases, we only create an entry for the latest prerelease in a specific version line.
|
||||
When submitting a newer prerelease, replace the older one.
|
||||
|
||||
|
||||
Adding version-specific fixes/patches
|
||||
-------------------------------------
|
||||
|
||||
We accept fixes to issues in specific Python releases that prevent users from using them with Pyenv.
|
||||
|
||||
In the default configuration for a Python release, we strive to provide as close to vanilla experience as practical,
|
||||
to maintain [the principle of the least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment).
|
||||
As such, any such fixes:
|
||||
|
||||
* Must not break or degrade (e.g. disable features) the build in any of the environments that the release officially supports
|
||||
* Must not introduce incompatibilities with the vanilla release (including binary incompatibilities)
|
||||
* Should not patch things unnecessarily, to minimize the risk of the aforementioned undesirable side effects.
|
||||
* E.g. if the fix is for a specific environment, its logic ought to only fire in this specific environment and not touch execution paths for other environments.
|
||||
* As such, it's advisable to briefly explain in the PR what each added patch does and why it is necessary to fix the declared problem
|
||||
|
||||
Generally, version-specific fixes belong in the scripts for the affected releases and/or patches for them -- this guarantees that their effect is limited to only those releases.
|
||||
|
||||
<h3>Backporting upstream patches</h3>
|
||||
|
||||
Usually, this is the easiest way to backport a fix for a problem that is fixed in a newer release.
|
||||
|
||||
* Clone Python, check out the tag for the appropriate release and create a branch
|
||||
* Apply existing patches if there are any (with either `patch` or `git am`) and commit
|
||||
* Cherry-pick the upstream commit that fixes the problem in a newer release
|
||||
* Commit and `git format-patch`
|
||||
* Commit the generated patch file into Pyenv, test your changes and submit a PR
|
||||
|
||||
|
||||
Deprecation policy
|
||||
------------------
|
||||
|
||||
We do not provide official support for EOL releases and environments or otherwise provide any kind of extended support for old Python releases.
|
||||
|
||||
We do however accept fixes from interested parties that would allow running older, including EOL, releases in newer environments.
|
||||
In addition to the above requirements for release-specific fixes,
|
||||
|
||||
* Such a fix must not add maintenance burden (e.g. add new logic to `python-build` that has to be kept there indefinitely)
|
||||
* Unless the added logic is useful for both EOL and non-EOL releases. In this case, it will be considered as being primarily an improvement for non-EOL releases.
|
||||
* Support is provided on a "best effort" basis: we do not maintain these fixes but won't actively break them, either, and accept any corrections.
|
||||
Since old releases never change, it's pretty safe to assume that the fixes will continue to work until a later version
|
||||
of an environment introduces further incompatible changes.
|
||||
|
||||
|
||||
Advanced changes / adding new Python flavor support
|
||||
---------------------------------------------------
|
||||
|
||||
An installation script is sourced from `python-build`. All installation scripts are based on the same logic:
|
||||
|
||||
1. Select the source to download and other variable parameters as needed.
|
||||
|
||||
This includes showing an error if the user's environment (OS, architecture) is not supported by the release.
|
||||
Binary releases that only officially support specific distro(s) typically show a warning in other distros instead.
|
||||
|
||||
2. Run one of the `install_*` shell functions
|
||||
|
||||
`install_*` shell functions defined in `python-build` install Python from different kinds of sources -- compressed package (binary or source), upstream installation script, VCS checkout. Pick one that's the most appropriate for your packaging.
|
||||
|
||||
Each of them accepts a couple of function-specific arguments which are followed by arguments that constitute the build sequence. Each `<argument>` in the build sequence corresponds to the `install_*_<argument>` function in `python-build`. Check what's available and add any functions with logic specific to your flavor if needed.
|
||||
|
||||
We strive to keep out of `python-build` parts of build logic that are release-specific and/or tend to change abruptly between releases -- e.g. sets of supported architectures and other software's versions. This results in logic duplication between installation scripts -- but since old releases never change once released, this doesn't really add to the maintenance burden. As a rule of thumb, `python-build` can host parts of logic that are expected to stay the same for an indefinite amount of time -- for an entire Python flavor or release line.
|
||||
General guidance
|
||||
================
|
||||
|
||||
* The usual principles of respecting existing conventions and making sure that your changes
|
||||
are in line with the overall product design apply when contributing code to Pyenv.
|
||||
|
||||
* We are limited to Bash 3.2 features
|
||||
|
||||
That's because that's the version shipped with MacOS.
|
||||
(They didn't upgrade past it and switched to Zsh because later versions
|
||||
are covered by GPLv3 which has additional restrictions unacceptable for Apple.)
|
||||
|
||||
You can still add performance optimizations etc that take advantage of newer Bash features
|
||||
as long as there is a fallback execution route for Bash 3.
|
||||
|
||||
* Be extra careful when submitting logic specific for the Apple Silicon platform
|
||||
|
||||
As of this writing, Github Actions do not support it and only one team member has the necessary hardware.
|
||||
So we may be unable to test your changes and may have to take your word for it.
|
||||
|
||||
|
||||
Formatting PRs
|
||||
==============
|
||||
|
||||
We strive to keep commit history one-concern-per-commit to keep it meaningful and easy to follow.
|
||||
If a pull request (PR) addresses a single concern (the typical case), we usually squash commits
|
||||
from it together when merging so its commit history doesn't matter.
|
||||
If however a PR addresses multiple separate concerns, each of them should be presented as a separate commit.
|
||||
Adding multiple new Python releases of the same flavor is okay with either a single or multiple commits.
|
||||
|
||||
|
||||
Authoring installation scripts
|
||||
==============================
|
||||
|
||||
Adding new Python release support
|
||||
---------------------------------
|
||||
|
||||
The easiest way to add support for a new Python release is to copy the script from the previous one
|
||||
and adjust it as necessary. In many cases, just changing version numbers, URLs and hashes is enough.
|
||||
Do pay attention to other "magic numbers" that may be present in a script --
|
||||
e.g. the set of architectures and OS versions supported by a release -- since those change from time to time, too.
|
||||
|
||||
Make sure to also copy any patches for the previous release that still apply to the new one.
|
||||
Typically, a patch no longer applies if it addresses a problem that's already fixed in the new release.
|
||||
|
||||
For prereleases, we only create an entry for the latest prerelease in a specific version line.
|
||||
When submitting a newer prerelease, replace the older one.
|
||||
|
||||
|
||||
Adding version-specific fixes/patches
|
||||
-------------------------------------
|
||||
|
||||
We accept fixes to issues in specific Python releases that prevent users from using them with Pyenv.
|
||||
|
||||
In the default configuration for a Python release, we strive to provide as close to vanilla experience as practical,
|
||||
to maintain [the principle of the least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment).
|
||||
As such, any such fixes:
|
||||
|
||||
* Must not break or degrade (e.g. disable features) the build in any of the environments that the release officially supports
|
||||
* Must not introduce incompatibilities with the vanilla release (including binary incompatibilities)
|
||||
* Should not patch things unnecessarily, to minimize the risk of the aforementioned undesirable side effects.
|
||||
* E.g. if the fix is for a specific environment, its logic ought to only fire in this specific environment and not touch execution paths for other environments.
|
||||
* As such, it's advisable to briefly explain in the PR what each added patch does and why it is necessary to fix the declared problem
|
||||
|
||||
Generally, version-specific fixes belong in the scripts for the affected releases and/or patches for them -- this guarantees that their effect is limited to only those releases.
|
||||
|
||||
<h3>Backporting upstream patches</h3>
|
||||
|
||||
Usually, this is the easiest way to backport a fix for a problem that is fixed in a newer release.
|
||||
|
||||
* Clone Python, check out the tag for the appropriate release and create a branch
|
||||
* Apply existing patches if there are any (with either `patch` or `git am`) and commit
|
||||
* Cherry-pick the upstream commit that fixes the problem in a newer release
|
||||
* Commit and `git format-patch`
|
||||
* Commit the generated patch file into Pyenv, test your changes and submit a PR
|
||||
|
||||
|
||||
Deprecation policy
|
||||
------------------
|
||||
|
||||
We do not provide official support for EOL releases and environments or otherwise provide any kind of extended support for old Python releases.
|
||||
|
||||
We do however accept fixes from interested parties that would allow running older, including EOL, releases in environments that they do not officially support.
|
||||
In addition to the above requirements for release-specific fixes,
|
||||
|
||||
* Such a fix must not add maintenance burden (e.g. add new logic to `python-build` that has to be kept there indefinitely)
|
||||
* Unless the added logic is useful for both EOL and non-EOL releases. In this case, it will be considered as being primarily an improvement for non-EOL releases.
|
||||
* Support is provided on a "best effort" basis: we do not actively maintain these fixes but won't actively break them, either, and will accept any corrections.
|
||||
Since old releases never change, it's pretty safe to assume that the fixes will continue to work until a later version
|
||||
of an environment introduces further incompatible changes.
|
||||
|
||||
|
||||
Advanced changes / adding new Python flavor support
|
||||
---------------------------------------------------
|
||||
|
||||
An installation script is sourced from `python-build`. All installation scripts are based on the same logic:
|
||||
|
||||
1. Select the source to download and other variable parameters as needed.
|
||||
|
||||
This includes showing an error if the user's environment (OS, architecture) is not supported by the release.
|
||||
Binary releases that only officially support specific distro(s) typically show a warning in other distros instead.
|
||||
|
||||
2. Run one of the `install_*` shell functions
|
||||
|
||||
`install_*` shell functions defined in `python-build` install Python from different kinds of sources -- compressed package (binary or source), upstream installation script, VCS checkout. Pick one that's the most appropriate for your packaging.
|
||||
|
||||
Each of them accepts a couple of function-specific arguments which are followed by arguments that constitute the build sequence. Each `<argument>` in the build sequence corresponds to the `install_*_<argument>` function in `python-build`. Check what's available and add any functions with logic specific to your flavor if needed.
|
||||
|
||||
We strive to keep out of `python-build` parts of build logic that are release-specific and/or tend to change abruptly between releases -- e.g. sets of supported architectures and other software's versions. This results in logic duplication between installation scripts -- but since old releases never change once released, this doesn't really add to the maintenance burden. As a rule of thumb, `python-build` can host parts of logic that are expected to stay the same for an indefinite amount of time -- for an entire Python flavor or release line.
|
||||
|
||||
15
MAINTENANCE.md
Normal file
15
MAINTENANCE.md
Normal file
@@ -0,0 +1,15 @@
|
||||
Creating a release
|
||||
==================
|
||||
|
||||
The release of the new version of Pyenv is done via GitHub Releases.
|
||||
|
||||
Release checklist:
|
||||
* Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv/releases) to generate a summary of changes. Save the summary locally.
|
||||
* The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI)
|
||||
* Push the version number in `libexec/pyenv---version`
|
||||
* Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases).
|
||||
* Major version is pushed if there are breaking changes
|
||||
* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section), reformatting it like the rest of the changelog sections
|
||||
* Commit the changes locally into `master`
|
||||
* Create a new tag with the new version number and push the changes including the tag
|
||||
* Create a new release on GitHub based on the tag, using the saved summary
|
||||
98
README.md
98
README.md
@@ -53,17 +53,21 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
|
||||
* [Install Python build dependencies](#install-python-build-dependencies)
|
||||
* **[Usage](#usage)**
|
||||
* [Install additional Python versions](#install-additional-python-versions)
|
||||
* [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version)
|
||||
* [Python versions with extended support](#python-versions-with-extended-support)
|
||||
* [Switch between Python versions](#switch-between-python-versions)
|
||||
* [Uninstall Python versions](#uninstall-python-versions)
|
||||
* [Other operations](#other-operations)
|
||||
* [Upgrading](#upgrading)
|
||||
* [Upgrading with Homebrew](#upgrading-with-homebrew)
|
||||
* [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout)
|
||||
* [Uninstalling pyenv](#uninstalling-pyenv)
|
||||
* [Pyenv plugins](#pyenv-plugins)
|
||||
* [Advanced Configuration](#advanced-configuration)
|
||||
* [Using Pyenv without shims](#using-pyenv-without-shims)
|
||||
* [Environment variables](#environment-variables)
|
||||
* **[Development](#development)**
|
||||
* [Contributing](#contributing)**
|
||||
* [Contributing](#contributing)
|
||||
* [Version History](#version-history)
|
||||
* [License](#license)
|
||||
|
||||
@@ -244,7 +248,9 @@ which does install native Windows Python versions.
|
||||
|
||||
#### Automatic installer
|
||||
|
||||
Visit our other project:
|
||||
`curl https://pyenv.run | bash`
|
||||
|
||||
For more details visit our other project:
|
||||
https://github.com/pyenv/pyenv-installer
|
||||
|
||||
|
||||
@@ -255,14 +261,14 @@ easy to fork and contribute any changes back upstream.
|
||||
|
||||
* **Check out Pyenv where you want it installed.**
|
||||
A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else):
|
||||
|
||||
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
|
||||
|
||||
```
|
||||
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
|
||||
```
|
||||
* Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't
|
||||
worry if it fails; Pyenv will still work normally:
|
||||
|
||||
cd ~/.pyenv && src/configure && make -C src
|
||||
|
||||
```
|
||||
cd ~/.pyenv && src/configure && make -C src
|
||||
```
|
||||
|
||||
### Set up your shell environment for Pyenv
|
||||
|
||||
@@ -352,6 +358,11 @@ See [Advanced configuration](#advanced-configuration) for details and more confi
|
||||
|
||||
**Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too.
|
||||
|
||||
In MacOS, you might also want to install [Fig](https://fig.io/) which
|
||||
provides alternative shell completions for many command line tools with an
|
||||
IDE-like popup interface in the terminal window.
|
||||
(Note that their completions are independent from Pyenv's codebase
|
||||
so they might be slightly out of sync for bleeding-edge interface changes.)
|
||||
|
||||
### Restart your shell
|
||||
|
||||
@@ -383,19 +394,42 @@ For example, to download and install Python 3.10.4, run:
|
||||
pyenv install 3.10.4
|
||||
```
|
||||
|
||||
Running `pyenv install -l` gives the list of all available versions.
|
||||
|
||||
**NOTE:** Most Pyenv-provided Python releases are source releases and are built
|
||||
from source as part of installation (that's why you need Python build dependencies preinstalled).
|
||||
You can pass options to Python's `configure` and compiler flags to customize the build,
|
||||
see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables)
|
||||
for details.
|
||||
|
||||
**NOTE:** If you want to use proxy for download, please set the `http_proxy` and `https_proxy`
|
||||
environment variables.
|
||||
|
||||
**NOTE:** If you 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
|
||||
|
||||
@@ -404,8 +438,8 @@ Though we don't actively maintain those patches, since existing releases never c
|
||||
it's safe to assume that they will continue working until there are further incompatible changes
|
||||
in a later version of those environments.
|
||||
|
||||
* *3.7.8-3.7.14, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3
|
||||
* *3.6.15* : MacOS 11+ and XCode 13.3
|
||||
* *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3
|
||||
* *3.5.10, 3.6.15* : MacOS 11+ and XCode 13.3
|
||||
* *2.7.18* : MacOS 10.15+ and Apple Silicon
|
||||
|
||||
|
||||
@@ -459,12 +493,34 @@ Note that Pyenv plugins that you install may add their own subcommands.
|
||||
|
||||
## Upgrading
|
||||
|
||||
### Upgrading with Homebrew
|
||||
|
||||
If you've installed Pyenv using Homebrew, upgrade using:
|
||||
```sh
|
||||
brew upgrade pyenv
|
||||
```
|
||||
|
||||
If you've installed Pyenv using Pyenv-installer or Git checkout, you can
|
||||
To switch from a release to the latest development version of Pyenv, use:
|
||||
|
||||
```sh
|
||||
brew uninstall pyenv
|
||||
brew install pyenv --head
|
||||
```
|
||||
|
||||
then you can upgrade it with `brew upgrade pyenv` as usual.
|
||||
|
||||
|
||||
### Upgrading with Installer or Git checkout
|
||||
|
||||
If you've installed Pyenv with Pyenv-installer, you likely have the
|
||||
[Pyenv-Update](https://github.com/pyenv/pyenv-update) plugin that would
|
||||
upgrade Pyenv and all installed plugins:
|
||||
|
||||
```sh
|
||||
pyenv update
|
||||
```
|
||||
|
||||
If you've installed Pyenv using Pyenv-installer or Git checkout, you can also
|
||||
upgrade your installation at any time using Git.
|
||||
|
||||
To upgrade to the latest development version of pyenv, use `git pull`:
|
||||
@@ -512,6 +568,19 @@ uninstall from the system.
|
||||
brew uninstall pyenv
|
||||
```
|
||||
|
||||
|
||||
## Pyenv plugins
|
||||
|
||||
Pyenv provides a simple, flexible and maintainable way to extend and customize its functionalty with plugins --
|
||||
as simple as creating a plugin directory and dropping a shell script on a certain subpath of it
|
||||
with whatever extra logic you need to be run at certain moments.
|
||||
|
||||
See [_Plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Plugins) on how to install and use plugins
|
||||
as well as a catalog of some useful existing plugins for common needs.
|
||||
|
||||
See [_Authoring plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) on writing your own plugins.
|
||||
|
||||
|
||||
## Advanced Configuration
|
||||
|
||||
Skip this section unless you must know what every line in your shell
|
||||
@@ -604,7 +673,6 @@ for environment variables that can be used to customize the build.
|
||||
|
||||
----
|
||||
|
||||
|
||||
## Development
|
||||
|
||||
The pyenv source code is [hosted on
|
||||
|
||||
@@ -29,7 +29,7 @@ if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev
|
||||
else
|
||||
[ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin"
|
||||
|
||||
READLINK=$(type -P greadlink readlink | head -1)
|
||||
READLINK=$(type -P readlink)
|
||||
[ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?"
|
||||
|
||||
resolve_link() {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
version="2.3.5"
|
||||
version="2.3.22"
|
||||
git_revision=""
|
||||
|
||||
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
|
||||
|
||||
@@ -46,7 +46,7 @@ extract_initial_comment_block() {
|
||||
collect_documentation() {
|
||||
# `tail` prevents "broken pipe" errors due to `head` closing the pipe without reading everything
|
||||
# https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error/642932#642932
|
||||
$(type -P gawk awk | tail -n +1 | head -1) '
|
||||
$(type -P gawk awk | tail -n +1 | head -n1) '
|
||||
/^Summary:/ {
|
||||
summary = substr($0, 10)
|
||||
next
|
||||
|
||||
@@ -26,7 +26,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th
|
||||
echo "pyenv: failed to load \`realpath' builtin" >&2
|
||||
exit 1
|
||||
fi
|
||||
READLINK=$(type -P greadlink readlink | head -1)
|
||||
READLINK=$(type -P readlink)
|
||||
if [ -z "$READLINK" ]; then
|
||||
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||
exit 1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Summary: Configure the shell environment for pyenv
|
||||
# Usage: eval "$(pyenv init [-|--path] [--no-rehash] [<shell>])"
|
||||
# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--detect-shell] [--no-rehash] [<shell>])"
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
@@ -9,7 +9,9 @@ set -e
|
||||
if [ "$1" = "--complete" ]; then
|
||||
echo -
|
||||
echo --path
|
||||
echo --no-push-path
|
||||
echo --no-rehash
|
||||
echo --detect-shell
|
||||
echo bash
|
||||
echo fish
|
||||
echo ksh
|
||||
@@ -19,6 +21,7 @@ fi
|
||||
|
||||
mode="help"
|
||||
no_rehash=""
|
||||
no_push_path=""
|
||||
for args in "$@"
|
||||
do
|
||||
if [ "$args" = "-" ]; then
|
||||
@@ -30,6 +33,16 @@ do
|
||||
mode="path"
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$args" = "--detect-shell" ]; then
|
||||
mode="detect-shell"
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$args" = "--no-push-path" ]; then
|
||||
no_push_path=1
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ "$args" = "--no-rehash" ]; then
|
||||
no_rehash=1
|
||||
@@ -69,12 +82,19 @@ function main() {
|
||||
print_shell_function
|
||||
exit 0
|
||||
;;
|
||||
"detect-shell")
|
||||
detect_profile 1
|
||||
print_detect_shell
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
# should never get here
|
||||
exit 2
|
||||
}
|
||||
|
||||
function help_() {
|
||||
function detect_profile() {
|
||||
local detect_for_detect_shell="$1"
|
||||
|
||||
case "$shell" in
|
||||
bash )
|
||||
if [ -e '~/.bash_profile' ]; then
|
||||
@@ -89,16 +109,35 @@ function help_() {
|
||||
profile='~/.zprofile'
|
||||
rc='~/.zshrc'
|
||||
;;
|
||||
ksh )
|
||||
ksh | ksh93 | mksh )
|
||||
# There are two implementations of Korn shell: AT&T (ksh93) and Mir (mksh).
|
||||
# Systems may have them installed under those names, or as ksh, so those
|
||||
# are recognized here. The obsolete ksh88 (subsumed by ksh93) and pdksh
|
||||
# (subsumed by mksh) are not included, since they are unlikely to still
|
||||
# be in use as interactive shells anywhere.
|
||||
profile='~/.profile'
|
||||
rc='~/.profile'
|
||||
;;
|
||||
* )
|
||||
profile='your shell'\''s login startup file'
|
||||
rc='your shell'\''s interactive startup file'
|
||||
if [ -n "$detect_for_detect_shell" ]; then
|
||||
profile=
|
||||
rc=
|
||||
else
|
||||
profile='your shell'\''s login startup file'
|
||||
rc='your shell'\''s interactive startup file'
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function print_detect_shell() {
|
||||
echo "PYENV_SHELL_DETECT=$shell"
|
||||
echo "PYENV_PROFILE_DETECT=$profile"
|
||||
echo "PYENV_RC_DETECT=$rc"
|
||||
}
|
||||
|
||||
function help_() {
|
||||
detect_profile
|
||||
{
|
||||
case "$shell" in
|
||||
fish )
|
||||
@@ -141,24 +180,56 @@ function init_dirs() {
|
||||
}
|
||||
|
||||
function print_path() {
|
||||
case "$shell" in
|
||||
fish )
|
||||
echo 'while set index (contains -i -- '\'"${PYENV_ROOT}/shims"\'' $PATH)'
|
||||
echo 'set -eg PATH[$index]; end; set -e index'
|
||||
echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH'
|
||||
;;
|
||||
* )
|
||||
# Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option
|
||||
# that makes it source `bashrc` under SSH even when not interactive.
|
||||
# This is inhibited by a guard in Debian's stock `bashrc` but some people remove it
|
||||
# in order to get proper environment for noninteractive remote commands
|
||||
# (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason).
|
||||
# This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367).
|
||||
# --norc negates this behavior of such a customized Bash.
|
||||
echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'"${PYENV_ROOT}/shims"\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; fi; done; echo "${paths[*]}"'\'')"'
|
||||
echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"'
|
||||
;;
|
||||
esac
|
||||
# if no_push_path is set, guard the PATH manipulation with a check on whether
|
||||
# the shim is already in the PATH.
|
||||
if [ -n "$no_push_path" ]; then
|
||||
case "$shell" in
|
||||
fish )
|
||||
echo 'if not contains -- "'"${PYENV_ROOT}/shims"'" $PATH'
|
||||
print_path_prepend_shims
|
||||
echo 'end'
|
||||
;;
|
||||
* )
|
||||
echo 'if [[ ":$PATH:" != *'\':"${PYENV_ROOT}"/shims:\''* ]]; then'
|
||||
print_path_prepend_shims
|
||||
echo 'fi'
|
||||
;;
|
||||
esac
|
||||
else
|
||||
case "$shell" in
|
||||
fish )
|
||||
echo 'while set pyenv_index (contains -i -- "'"${PYENV_ROOT}/shims"'" $PATH)'
|
||||
echo 'set -eg PATH[$pyenv_index]; end; set -e pyenv_index'
|
||||
print_path_prepend_shims
|
||||
;;
|
||||
* )
|
||||
# Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option
|
||||
# that makes it source `bashrc` under SSH even when not interactive.
|
||||
# This is inhibited by a guard in Debian's stock `bashrc` but some people remove it
|
||||
# in order to get proper environment for noninteractive remote commands
|
||||
# (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason).
|
||||
# This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367).
|
||||
# --norc negates this behavior of such a customized Bash.
|
||||
echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); '
|
||||
echo 'for i in ${!paths[@]}; do '
|
||||
echo 'if [[ ${paths[i]} == "'\'\'"${PYENV_ROOT}/shims"\'\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; '
|
||||
echo 'fi; done; '
|
||||
echo 'echo "${paths[*]}"'\'')"'
|
||||
print_path_prepend_shims
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
function print_path_prepend_shims() {
|
||||
case "$shell" in
|
||||
fish )
|
||||
echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH'
|
||||
;;
|
||||
* )
|
||||
echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"'
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
function print_env() {
|
||||
@@ -203,7 +274,7 @@ function pyenv
|
||||
end
|
||||
EOS
|
||||
;;
|
||||
ksh )
|
||||
ksh | ksh93 | mksh )
|
||||
cat <<EOS
|
||||
function pyenv {
|
||||
typeset command
|
||||
|
||||
80
libexec/pyenv-latest
Executable file
80
libexec/pyenv-latest
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
# Summary: Print the latest installed or known version with the given prefix
|
||||
# Usage: pyenv latest [-k|--known] [-q|--quiet] <prefix>
|
||||
#
|
||||
# -k/--known Select from all known versions instead of installed
|
||||
# -q/--quiet Do not print an error message on resolution failure
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
case "$1" in
|
||||
-k|--known)
|
||||
FROM_KNOWN=1
|
||||
shift
|
||||
;;
|
||||
-q|--quiet)
|
||||
QUIET=1
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
prefix=$1
|
||||
exitcode=0
|
||||
|
||||
IFS=$'\n'
|
||||
|
||||
if [[ -z $FROM_KNOWN ]]; then
|
||||
DEFINITION_CANDIDATES=( $(pyenv-versions --bare --skip-envs) )
|
||||
else
|
||||
DEFINITION_CANDIDATES=( $(python-build --definitions ) )
|
||||
fi
|
||||
|
||||
if printf '%s\n' "${DEFINITION_CANDIDATES[@]}" 2>/dev/null | grep -qxFe "$prefix"; then
|
||||
echo "$prefix"
|
||||
exit $exitcode;
|
||||
fi
|
||||
|
||||
# https://stackoverflow.com/questions/11856054/is-there-an-easy-way-to-pass-a-raw-string-to-grep/63483807#63483807
|
||||
prefix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$prefix")"
|
||||
# FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash
|
||||
DEFINITION_CANDIDATES=(\
|
||||
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
|
||||
grep -Ee "^$prefix_re[-.]" || true))
|
||||
|
||||
DEFINITION_CANDIDATES=(\
|
||||
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
|
||||
sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d'));
|
||||
|
||||
# Compose a sorting key, followed by | and original value
|
||||
DEFINITION_CANDIDATES=(\
|
||||
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \
|
||||
awk \
|
||||
'{ if (match($0,"^[[:alnum:]]+-"))
|
||||
{ print substr($0,0,RLENGTH-1) "." substr($0,RLENGTH+1) "..|" $0; }
|
||||
else
|
||||
{ print $0 "...|" $0; }
|
||||
}'))
|
||||
DEFINITION_CANDIDATES=(\
|
||||
$(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" \
|
||||
| sort -t. -k1,1r -k 2,2nr -k 3,3nr -k4,4nr \
|
||||
| cut -f2 -d $'|' \
|
||||
|| true))
|
||||
DEFINITION="${DEFINITION_CANDIDATES[0]}"
|
||||
|
||||
if [[ -n "$DEFINITION" ]]; then
|
||||
echo "$DEFINITION"
|
||||
else
|
||||
if [[ -z $QUIET ]]; then
|
||||
echo "pyenv: no $([[ -z $FROM_KNOWN ]] && echo installed || echo known) versions match the prefix \`$prefix'" >&2
|
||||
fi
|
||||
exitcode=1
|
||||
fi
|
||||
|
||||
exit $exitcode
|
||||
@@ -42,6 +42,7 @@ OLDIFS="$IFS"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
version="$(pyenv-latest -q "$version" || echo "$version")"
|
||||
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
|
||||
fi
|
||||
if [ -d "$PYENV_PREFIX_PATH" ]; then
|
||||
|
||||
@@ -34,6 +34,8 @@ OLDIFS="$IFS"
|
||||
versions=("${versions[@]}" "${version}")
|
||||
elif version_exists "${version#python-}"; then
|
||||
versions=("${versions[@]}" "${version#python-}")
|
||||
elif resolved_version="$(pyenv-latest -q "$version")"; then
|
||||
versions=("${versions[@]}" "${resolved_version}")
|
||||
else
|
||||
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
||||
any_not_installed=1
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
#!/usr/bin/env bash
|
||||
# Summary: List all Python versions available to pyenv
|
||||
# Usage: pyenv versions [--bare] [--skip-aliases]
|
||||
# Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs]
|
||||
#
|
||||
# Lists all Python versions found in `$PYENV_ROOT/versions/*'.
|
||||
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
unset bare
|
||||
unset skip_aliases
|
||||
unset bare skip_aliases skip_envs
|
||||
# Provide pyenv completions
|
||||
for arg; do
|
||||
case "$arg" in
|
||||
--complete )
|
||||
echo --bare
|
||||
echo --skip-aliases
|
||||
echo --skip-envs
|
||||
exit ;;
|
||||
--bare ) bare=1 ;;
|
||||
--skip-aliases ) skip_aliases=1 ;;
|
||||
--skip-envs ) skip_envs=1 ;;
|
||||
* )
|
||||
pyenv-help --usage versions >&2
|
||||
exit 1
|
||||
@@ -33,7 +34,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th
|
||||
exit 1
|
||||
fi
|
||||
|
||||
READLINK=$(type -P greadlink readlink | head -1)
|
||||
READLINK=$(type -P readlink)
|
||||
if [ -z "$READLINK" ]; then
|
||||
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||
exit 1
|
||||
@@ -70,8 +71,6 @@ else
|
||||
current_versions=()
|
||||
fi
|
||||
if [ -n "$bare" ]; then
|
||||
hit_prefix=""
|
||||
miss_prefix=""
|
||||
include_system=""
|
||||
else
|
||||
hit_prefix="* "
|
||||
@@ -104,12 +103,25 @@ exists() {
|
||||
}
|
||||
|
||||
print_version() {
|
||||
if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then
|
||||
echo "${hit_prefix}$1 (set by $(pyenv-version-origin))"
|
||||
elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then
|
||||
echo "${hit_prefix}$1 (set by $(pyenv-version-origin))"
|
||||
local version="${1:?}"
|
||||
if [[ -n $bare ]]; then
|
||||
echo "$version"
|
||||
return
|
||||
fi
|
||||
local path="${2:?}"
|
||||
if [[ -L "$path" ]]; then
|
||||
# Only resolve the link itself for printing, do not resolve further.
|
||||
# Doing otherwise would misinform the user of what the link contains.
|
||||
version_repr="$version --> $(readlink "$path")"
|
||||
else
|
||||
echo "${miss_prefix}$1"
|
||||
version_repr="$version"
|
||||
fi
|
||||
if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then
|
||||
echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))"
|
||||
elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then
|
||||
echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))"
|
||||
else
|
||||
echo "${miss_prefix}${version_repr}"
|
||||
fi
|
||||
num_versions=$((num_versions + 1))
|
||||
}
|
||||
@@ -119,7 +131,7 @@ if [ -n "$include_system" ] && \
|
||||
(PYENV_VERSION=system pyenv-which python >/dev/null 2>&1 || \
|
||||
PYENV_VERSION=system pyenv-which python3 >/dev/null 2>&1 || \
|
||||
PYENV_VERSION=system pyenv-which python2 >/dev/null 2>&1) ; then
|
||||
print_version system
|
||||
print_version system "/"
|
||||
fi
|
||||
|
||||
shopt -s dotglob nullglob
|
||||
@@ -139,16 +151,18 @@ for path in "${versions_dir_entries[@]}"; do
|
||||
if [ -d "$path" ]; then
|
||||
if [ -n "$skip_aliases" ] && [ -L "$path" ]; then
|
||||
target="$(realpath "$path")"
|
||||
[ "${target%/*}" != "$versions_dir" ] || continue
|
||||
[ "${target%/*/envs/*}" != "$versions_dir" ] || continue
|
||||
[ "${target%/*}" == "$versions_dir" ] && continue
|
||||
[ "${target%/*/envs/*}" == "$versions_dir" ] && continue
|
||||
fi
|
||||
print_version "${path##*/}" "$path"
|
||||
# virtual environments created by anaconda/miniconda/pyenv-virtualenv
|
||||
if [[ -z $skip_envs ]]; then
|
||||
for env_path in "${path}/envs/"*; do
|
||||
if [ -d "${env_path}" ]; then
|
||||
print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
print_version "${path##*/}"
|
||||
# virtual environments created by anaconda/miniconda
|
||||
for env_path in "${path}/envs/"*; do
|
||||
if [ -d "${env_path}" ]; then
|
||||
print_version "${env_path#${PYENV_ROOT}/versions/}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
shopt -u dotglob nullglob
|
||||
|
||||
@@ -47,12 +47,20 @@ OLDIFS="$IFS"
|
||||
IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)})
|
||||
IFS="$OLDIFS"
|
||||
|
||||
declare -a nonexistent_versions
|
||||
|
||||
for version in "${versions[@]}" "$system"; do
|
||||
if [ "$version" = "system" ]; then
|
||||
PATH="$(remove_from_path "${PYENV_ROOT}/shims")"
|
||||
PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)"
|
||||
else
|
||||
PYENV_COMMAND_PATH="${PYENV_ROOT}/versions/${version}/bin/${PYENV_COMMAND}"
|
||||
# $version may be a prefix to be resolved by pyenv-latest
|
||||
version_path="$(pyenv-prefix "${version}" 2>/dev/null)" || \
|
||||
{ nonexistent_versions+=("$version"); continue; }
|
||||
# resolve $version for hooks
|
||||
version="$(basename "$version_path")"
|
||||
PYENV_COMMAND_PATH="$version_path/bin/${PYENV_COMMAND}"
|
||||
unset version_path
|
||||
fi
|
||||
if [ -x "$PYENV_COMMAND_PATH" ]; then
|
||||
break
|
||||
@@ -69,17 +77,10 @@ done
|
||||
if [ -x "$PYENV_COMMAND_PATH" ]; then
|
||||
echo "$PYENV_COMMAND_PATH"
|
||||
else
|
||||
any_not_installed=0
|
||||
for version in "${versions[@]}"; do
|
||||
if [ "$version" = "system" ]; then
|
||||
continue
|
||||
fi
|
||||
if ! [ -d "${PYENV_ROOT}/versions/${version}" ]; then
|
||||
if (( ${#nonexistent_versions[@]} )); then
|
||||
for version in "${nonexistent_versions[@]}"; do
|
||||
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
|
||||
any_not_installed=1
|
||||
fi
|
||||
done
|
||||
if [ "$any_not_installed" = 1 ]; then
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.TH PYENV 1 "12 Dec 2020" "PYENV"
|
||||
.TH PYENV 1 "24 Apr 2023" "PYENV"
|
||||
.SH NAME
|
||||
pyenv \- Simple Python version management
|
||||
.SH SYNOPSIS
|
||||
@@ -12,10 +12,12 @@ pyenv lets you easily switch between multiple versions of Python\. It's simple,
|
||||
\fBAppend\fR the following to \fB$HOME/.bashrc\fR
|
||||
.P
|
||||
.RS 15
|
||||
source /usr/share/pyenv/pyenv_user_setup.bash
|
||||
.nf
|
||||
if command -v pyenv 1>/dev/null 2>&1; then\n
|
||||
eval "$(pyenv init -)" \n
|
||||
fi
|
||||
.fi
|
||||
.RE
|
||||
.\"OR
|
||||
.\"\fBsh echo \-e \if command \-v pyenv 1>/dev/null 2>&1; then\en eval "$(pyenv init \-)"\enfi' >> ~/\.bashrc\fR
|
||||
.RS 3
|
||||
.P
|
||||
.nh
|
||||
|
||||
@@ -164,6 +164,21 @@ the version(s) installed with `--enable-shared`.
|
||||
$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.9
|
||||
```
|
||||
|
||||
### Building for maximum performance
|
||||
|
||||
Building CPython with `--enable-optimizations` will result in a faster
|
||||
interpreter at the cost of significantly longer build times. Most notably, this
|
||||
enables PGO (profile guided optimization). While your mileage may vary, it is
|
||||
common for performance improvement from this to be in the ballpark of 30%.
|
||||
|
||||
```sh
|
||||
env PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto' PYTHON_CFLAGS='-march=native -mtune=native' pyenv install 3.6.0
|
||||
```
|
||||
|
||||
You can also customize the task used for profile guided optimization by setting
|
||||
the `PROFILE_TASK` environment variable, for instance, `PROFILE_TASK='-m
|
||||
test.regrtest --pgo -j0'` will run much faster than the default task.
|
||||
|
||||
### Checksum verification
|
||||
|
||||
If you have the `shasum`, `openssl`, or `sha256sum` tool installed, python-build will
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Summary: Install a Python version using python-build
|
||||
#
|
||||
# Usage: pyenv install [-f] [-kvp] <version>
|
||||
# Usage: pyenv install [-f] [-kvp] <version>...
|
||||
# pyenv install [-f] [-kvp] <definition-file>
|
||||
# pyenv install -l|--list
|
||||
# pyenv install --version
|
||||
@@ -59,7 +59,7 @@ usage() {
|
||||
|
||||
definitions() {
|
||||
local query="$1"
|
||||
python-build --definitions | $(type -P ggrep grep | head -1) -F "$query" || true
|
||||
python-build --definitions | $(type -P ggrep grep | head -n1) -F "$query" || true
|
||||
}
|
||||
|
||||
indent() {
|
||||
@@ -113,17 +113,15 @@ for option in "${OPTIONS[@]}"; do
|
||||
esac
|
||||
done
|
||||
|
||||
[ "${#ARGUMENTS[@]}" -le 1 ] || usage 1 >&2
|
||||
|
||||
unset VERSION_NAME
|
||||
|
||||
# The first argument contains the definition to install. If the
|
||||
# argument is missing, try to install whatever local app-specific
|
||||
# version is specified by pyenv. Show usage instructions if a local
|
||||
# version is not specified.
|
||||
DEFINITION="${ARGUMENTS[0]}"
|
||||
[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)"
|
||||
[ -n "$DEFINITION" ] || usage 1 >&2
|
||||
DEFINITIONS=("${ARGUMENTS[@]}")
|
||||
[[ "${#DEFINITIONS[*]}" -eq 0 ]] && DEFINITIONS=($(pyenv-local 2>/dev/null || true))
|
||||
[[ "${#DEFINITIONS[*]}" -eq 0 ]] && usage 1 >&2
|
||||
|
||||
# Define `before_install` and `after_install` functions that allow
|
||||
# plugin hooks to register a string of code for execution before or
|
||||
@@ -140,102 +138,6 @@ after_install() {
|
||||
after_hooks["${#after_hooks[@]}"]="$hook"
|
||||
}
|
||||
|
||||
OLDIFS="$IFS"
|
||||
IFS=$'\n' scripts=(`pyenv-hooks install`)
|
||||
IFS="$OLDIFS"
|
||||
for script in "${scripts[@]}"; do source "$script"; done
|
||||
|
||||
|
||||
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
|
||||
# compute the installation prefix.
|
||||
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
|
||||
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
|
||||
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
||||
|
||||
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
|
||||
|
||||
# If the installation prefix exists, prompt for confirmation unless
|
||||
# the --force option was specified.
|
||||
if [ -d "${PREFIX}/bin" ]; then
|
||||
if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then
|
||||
echo "pyenv: $PREFIX already exists" >&2
|
||||
read -p "continue with installation? (y/N) "
|
||||
|
||||
case "$REPLY" in
|
||||
y | Y | yes | YES ) ;;
|
||||
* ) exit 1 ;;
|
||||
esac
|
||||
elif [ -n "$SKIP_EXISTING" ]; then
|
||||
# Since we know the python version is already installed, and are opting to
|
||||
# not force installation of existing versions, we just `exit 0` here to
|
||||
# leave things happy
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# If PYENV_BUILD_ROOT is set, always pass keep options to python-build.
|
||||
if [ -n "${PYENV_BUILD_ROOT}" ]; then
|
||||
export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}"
|
||||
KEEP="-k"
|
||||
fi
|
||||
|
||||
# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory
|
||||
# exists and the variable is not already set.
|
||||
if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
|
||||
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
|
||||
fi
|
||||
|
||||
if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then
|
||||
case "${VERSION_NAME}" in
|
||||
[23]"."* )
|
||||
# Default PYENV_VERSION to the friendly Python version. (The
|
||||
# CPython installer requires an existing Python installation to run. An
|
||||
# unsatisfied local .python-version file can cause the installer to
|
||||
# fail.)
|
||||
for version_info in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do
|
||||
# Anaconda's `curl` doesn't work on platform where `/etc/pki/tls/certs/ca-bundle.crt` isn't available (e.g. Debian)
|
||||
for version in $(pyenv-whence "python${version_info}" 2>/dev/null || true); do
|
||||
if [[ "${version}" != "anaconda"* ]] && [[ "${version}" != "miniconda"* ]]; then
|
||||
PYENV_BOOTSTRAP_VERSION="${version}"
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
;;
|
||||
"pypy"*"-dev" | "pypy"*"-src" )
|
||||
# PyPy/PyPy3 requires existing Python 2.7 to build
|
||||
if [ -n "${PYENV_RPYTHON_VERSION}" ]; then
|
||||
PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}"
|
||||
else
|
||||
for version in $(pyenv-versions --bare | sort -r); do
|
||||
if [[ "${version}" == "2.7"* ]]; then
|
||||
PYENV_BOOTSTRAP_VERSION="$version"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then
|
||||
for dep in curses genc pycparser; do
|
||||
if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c "import ${dep}" 1>/dev/null 2>&1; then
|
||||
echo "pyenv-install: $VERSION_NAME: PyPy requires \`${dep}' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "${PYENV_BOOTSTRAP_VERSION}" ]; then
|
||||
export PYENV_VERSION="${PYENV_BOOTSTRAP_VERSION}"
|
||||
fi
|
||||
|
||||
# Execute `before_install` hooks.
|
||||
for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
# Plan cleanup on unsuccessful installation.
|
||||
cleanup() {
|
||||
[ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX"
|
||||
@@ -243,43 +145,151 @@ cleanup() {
|
||||
|
||||
trap cleanup SIGINT
|
||||
|
||||
# Invoke `python-build` and record the exit status in $STATUS.
|
||||
STATUS=0
|
||||
python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?"
|
||||
|
||||
# Display a more helpful message if the definition wasn't found.
|
||||
if [ "$STATUS" == "2" ]; then
|
||||
{ candidates="$(definitions "$DEFINITION")"
|
||||
here="$(dirname "${0%/*}")/../.."
|
||||
if [ -n "$candidates" ]; then
|
||||
OLDIFS="$IFS"
|
||||
IFS=$'\n' scripts=(`pyenv-hooks install`)
|
||||
IFS="$OLDIFS"
|
||||
for script in "${scripts[@]}"; do source "$script"; done
|
||||
|
||||
COMBINED_STATUS=0
|
||||
for DEFINITION in "${DEFINITIONS[@]}"; do
|
||||
STATUS=0
|
||||
|
||||
# Try to resolve a prefix if user indeed gave a prefix.
|
||||
# We install the version under the resolved name
|
||||
# and hooks also see the resolved name
|
||||
DEFINITION="$(pyenv-latest -q -k "$DEFINITION" || echo "$DEFINITION")"
|
||||
|
||||
# Set VERSION_NAME from $DEFINITION. Then compute the installation prefix.
|
||||
VERSION_NAME="${DEFINITION##*/}"
|
||||
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
|
||||
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
||||
|
||||
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
|
||||
|
||||
# If the installation prefix exists, prompt for confirmation unless
|
||||
# the --force option was specified.
|
||||
if [ -d "${PREFIX}/bin" ]; then
|
||||
if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then
|
||||
echo "pyenv: $PREFIX already exists" >&2
|
||||
read -p "continue with installation? (y/N) "
|
||||
|
||||
case "$REPLY" in
|
||||
y | Y | yes | YES ) ;;
|
||||
* ) { STATUS=1; [[ $STATUS -gt $COMBINED_STATUS ]] && COMBINED_STATUS=$STATUS; }; continue ;;
|
||||
esac
|
||||
elif [ -n "$SKIP_EXISTING" ]; then
|
||||
# Since we know the python version is already installed, and are opting to
|
||||
# not force installation of existing versions, we just `exit 0` here to
|
||||
# leave things happy
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
# If PYENV_BUILD_ROOT is set, always pass keep options to python-build.
|
||||
if [ -n "${PYENV_BUILD_ROOT}" ]; then
|
||||
export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}"
|
||||
KEEP="-k"
|
||||
fi
|
||||
|
||||
# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory
|
||||
# exists and the variable is not already set.
|
||||
if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
|
||||
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
|
||||
fi
|
||||
|
||||
if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then
|
||||
case "${VERSION_NAME}" in
|
||||
[23]"."* )
|
||||
# Default PYENV_VERSION to the friendly Python version. (The
|
||||
# CPython installer requires an existing Python installation to run. An
|
||||
# unsatisfied local .python-version file can cause the installer to
|
||||
# fail.)
|
||||
for version_info in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do
|
||||
# Anaconda's `curl` doesn't work on platform where `/etc/pki/tls/certs/ca-bundle.crt` isn't available (e.g. Debian)
|
||||
for version in $(pyenv-whence "python${version_info}" 2>/dev/null || true); do
|
||||
if [[ "${version}" != "anaconda"* ]] && [[ "${version}" != "miniconda"* ]]; then
|
||||
PYENV_BOOTSTRAP_VERSION="${version}"
|
||||
break 2
|
||||
fi
|
||||
done
|
||||
done
|
||||
;;
|
||||
"pypy"*"-dev" | "pypy"*"-src" )
|
||||
# PyPy/PyPy3 requires existing Python 2.7 to build
|
||||
if [ -n "${PYENV_RPYTHON_VERSION}" ]; then
|
||||
PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}"
|
||||
else
|
||||
for version in $(pyenv-versions --bare | sort -r); do
|
||||
if [[ "${version}" == "2.7"* ]]; then
|
||||
PYENV_BOOTSTRAP_VERSION="$version"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then
|
||||
for dep in pycparser; do
|
||||
if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c "import ${dep}" 1>/dev/null 2>&1; then
|
||||
echo "pyenv-install: $VERSION_NAME: PyPy requires \`${dep}' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
else
|
||||
echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -n "${PYENV_BOOTSTRAP_VERSION}" ]; then
|
||||
export PYENV_VERSION="${PYENV_BOOTSTRAP_VERSION}"
|
||||
fi
|
||||
|
||||
# Execute `before_install` hooks.
|
||||
for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
# Invoke `python-build` and record the exit status in $STATUS.
|
||||
python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || \
|
||||
{ STATUS=$?; [[ $STATUS -gt $COMBINED_STATUS ]] && COMBINED_STATUS=$STATUS; }
|
||||
|
||||
# Display a more helpful message if the definition wasn't found.
|
||||
if [ "$STATUS" == "2" ]; then
|
||||
{ candidates="$(definitions "$DEFINITION")"
|
||||
here="$(dirname "${0%/*}")/../.."
|
||||
if [ -n "$candidates" ]; then
|
||||
echo
|
||||
echo "The following versions contain \`$DEFINITION' in the name:"
|
||||
echo "$candidates" | indent
|
||||
fi
|
||||
echo
|
||||
echo "The following versions contain \`$DEFINITION' in the name:"
|
||||
echo "$candidates" | indent
|
||||
fi
|
||||
echo
|
||||
echo "See all available versions with \`pyenv install --list'."
|
||||
echo
|
||||
echo -n "If the version you need is missing, try upgrading pyenv"
|
||||
if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then
|
||||
printf ":\n\n"
|
||||
echo " brew update && brew upgrade pyenv"
|
||||
elif [ -d "${here}/.git" ]; then
|
||||
printf ":\n\n"
|
||||
echo " cd ${here} && git pull && cd -"
|
||||
else
|
||||
printf ".\n"
|
||||
fi
|
||||
} >&2
|
||||
fi
|
||||
echo "See all available versions with \`pyenv install --list'."
|
||||
echo
|
||||
echo -n "If the version you need is missing, try upgrading pyenv"
|
||||
if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then
|
||||
printf ":\n\n"
|
||||
echo " brew update && brew upgrade pyenv"
|
||||
elif [ -d "${here}/.git" ]; then
|
||||
printf ":\n\n"
|
||||
echo " cd ${here} && git pull && cd -"
|
||||
else
|
||||
printf ".\n"
|
||||
fi
|
||||
} >&2
|
||||
fi
|
||||
|
||||
# Execute `after_install` hooks.
|
||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||
# Execute `after_install` hooks.
|
||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
# Run `pyenv-rehash` after a successful installation.
|
||||
if [ "$STATUS" == "0" ]; then
|
||||
pyenv-rehash
|
||||
else
|
||||
cleanup
|
||||
fi
|
||||
# Run `pyenv-rehash` after a successful installation.
|
||||
if [[ $STATUS -eq 0 ]]; then
|
||||
pyenv-rehash
|
||||
else
|
||||
cleanup
|
||||
break
|
||||
fi
|
||||
|
||||
exit "$STATUS"
|
||||
done
|
||||
|
||||
|
||||
exit "${COMBINED_STATUS}"
|
||||
|
||||
@@ -56,9 +56,14 @@ lib() {
|
||||
}
|
||||
lib "$1"
|
||||
|
||||
READLINK=$(type -P readlink)
|
||||
if [ -z "$READLINK" ]; then
|
||||
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
resolve_link() {
|
||||
$(type -P greadlink readlink | head -1) "$1"
|
||||
$READLINK "$1"
|
||||
}
|
||||
|
||||
abs_dirname() {
|
||||
@@ -102,7 +107,7 @@ os_information() {
|
||||
source /etc/os-release
|
||||
echo "$NAME" $VERSION_ID
|
||||
else
|
||||
local os="$(cat /etc/{centos,redhat,fedora,system}-release /etc/debian_version 2>/dev/null | head -1)"
|
||||
local os="$(cat /etc/{centos,redhat,fedora,system}-release /etc/debian_version 2>/dev/null | head -n1)"
|
||||
echo "${os:-$(uname -sr)}"
|
||||
fi
|
||||
}
|
||||
@@ -233,9 +238,7 @@ install_package_using() {
|
||||
make_package "${make_args[@]}"
|
||||
popd >&4
|
||||
|
||||
{ echo "Installed ${package_name} to ${PREFIX_PATH}"
|
||||
echo
|
||||
} >&2
|
||||
echo "Installed ${package_name} to ${PREFIX_PATH}" >&2
|
||||
}
|
||||
|
||||
make_package() {
|
||||
@@ -258,7 +261,7 @@ compute_sha2() {
|
||||
output="$(shasum -a 256 -b)" || return 1
|
||||
echo "${output% *}"
|
||||
elif type openssl &>/dev/null; then
|
||||
local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null || true)"/bin/openssl openssl | head -1)"
|
||||
local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null || true)"/bin/openssl openssl | head -n1)"
|
||||
output="$("$openssl" dgst -sha256 2>/dev/null)" || return 1
|
||||
echo "${output##* }"
|
||||
elif type sha256sum &>/dev/null; then
|
||||
@@ -360,12 +363,38 @@ http_head_aria2c() {
|
||||
}
|
||||
|
||||
http_get_aria2c() {
|
||||
local out="${2:-$(mktemp "out.XXXXXX")}"
|
||||
if aria2c --allow-overwrite=true --no-conf=true -o "${out}" ${ARIA2_OPTS} "$1" >&4; then
|
||||
# aria2c always treats -o argument as a relative path
|
||||
local out dir_out;
|
||||
if [[ -n "$2" ]]; then
|
||||
out="$(basename $2)";
|
||||
dir_out="$(dirname $2)";
|
||||
else
|
||||
out="$(mktemp "out.XXXXXX")";
|
||||
dir_out="$TMPDIR";
|
||||
fi
|
||||
|
||||
# In Ubuntu, aria2c is only available as a snap. Snaps cannot read or write /tmp
|
||||
# (files cannot be found, any write result is silently discarded).
|
||||
local aria2c_is_snap;
|
||||
if [[ $(command -v aria2c) == "/snap/"* ]]; then aria2c_is_snap=1; fi
|
||||
|
||||
if [[ -n $aria2c_is_snap ]]; then
|
||||
local real_dir_out="$dir_out"
|
||||
# presumably, snaps can always write to under $HOME
|
||||
dir_out="$HOME"
|
||||
fi
|
||||
|
||||
if aria2c --allow-overwrite=true --no-conf=true -d "${dir_out}" -o "${out}" ${ARIA2_OPTS} "$1" >&4; then
|
||||
[ -n "$2" ] || cat "${out}"
|
||||
else
|
||||
false
|
||||
fi
|
||||
ret=$?
|
||||
|
||||
if [[ -n "$2" && -n $aria2c_is_snap ]]; then
|
||||
mv "$dir_out/$out" "$real_dir_out/$out"
|
||||
fi
|
||||
return "$ret"
|
||||
}
|
||||
|
||||
http_head_curl() {
|
||||
@@ -714,7 +743,7 @@ build_package() {
|
||||
|
||||
echo "Installing ${package_name}..." >&2
|
||||
|
||||
[ -n "$HAS_PATCH" ] && apply_python_patch "$package_name"
|
||||
[ -n "$HAS_PATCH" ] && apply_patch "$package_name" <(cat "${package_name}.patch")
|
||||
|
||||
for command in $commands; do
|
||||
"build_package_${command}" "$package_name"
|
||||
@@ -789,10 +818,10 @@ build_package_standard_build() {
|
||||
export CC=clang
|
||||
fi
|
||||
${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" \
|
||||
$CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" || return 1
|
||||
"${!PACKAGE_CONFIGURE_OPTS_ARRAY}" $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} || return 1
|
||||
) >&4 2>&1
|
||||
|
||||
{ "$MAKE" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} "${!PACKAGE_MAKE_OPTS_ARRAY}"
|
||||
{ "$MAKE" "${!PACKAGE_MAKE_OPTS_ARRAY}" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS}
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
@@ -843,7 +872,7 @@ build_package_jython() {
|
||||
fix_jython_shebangs() {
|
||||
# Workaround for Jython 2.7+ (#458)
|
||||
for file in "${PREFIX_PATH}/bin"/*; do
|
||||
case "$(head -1 "${file}")" in
|
||||
case "$(head -n1 "${file}")" in
|
||||
"#!"*"/bin/jython" )
|
||||
sed -i.bak "1 s:.*:#\!${PREFIX_PATH}\/bin\/jython:" "${file}"
|
||||
;;
|
||||
@@ -914,7 +943,13 @@ build_package_micropython() {
|
||||
|
||||
pypy_architecture() {
|
||||
case "$(uname -s)" in
|
||||
"Darwin" ) echo "osx64" ;;
|
||||
"Darwin" )
|
||||
case "$(uname -m)" in
|
||||
"arm64" ) echo "osarm64" ;;
|
||||
"x86_64" ) echo "osx64" ;;
|
||||
* ) return 1 ;;
|
||||
esac
|
||||
;;
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"armel" ) echo "linux-armel" ;;
|
||||
@@ -938,10 +973,30 @@ pypy_architecture() {
|
||||
esac
|
||||
}
|
||||
|
||||
graalpy_architecture() {
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
case "$(uname -m)" in
|
||||
"x86_64" ) echo "macos-amd64" ;;
|
||||
"arm64" ) echo "macos-aarch64" ;;
|
||||
* ) return 1 ;;
|
||||
esac
|
||||
;;
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"x86_64" ) echo "linux-amd64" ;;
|
||||
"aarch64" ) echo "linux-aarch64" ;;
|
||||
* ) return 1 ;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
pyston_architecture() {
|
||||
pypy_architecture
|
||||
}
|
||||
|
||||
# Note: not used by graalpy >= 23.3.0 anymore
|
||||
build_package_graalpython() {
|
||||
build_package_copy
|
||||
ln -fs "${PREFIX_PATH}/bin/graalpython" "${PREFIX_PATH}/bin/python"
|
||||
@@ -1071,13 +1126,13 @@ setup_builtin_patches() {
|
||||
local package_name="$1"
|
||||
local package_patch_path="${DEFINITION_PATH%/*}/patches/${DEFINITION_PATH##*/}/${package_name}"
|
||||
|
||||
ORIG_HAS_PATCH="$HAS_PATCH"
|
||||
# Apply built-in patches if patch was not given from stdin
|
||||
if [ -z "$HAS_PATCH" ] && [ -d "${package_patch_path}" ]; then
|
||||
if [[ -n "$HAS_STDIN_PATCH" ]] && package_is_python "${package_name}"; then
|
||||
cat >"${package_name}.patch"
|
||||
HAS_PATCH=true
|
||||
elif [[ -d "${package_patch_path}" ]]; then
|
||||
{ find "${package_patch_path}" -maxdepth 1 -type f
|
||||
} 2>/dev/null | sort | xargs cat 1>"${package_name}.patch"
|
||||
exec <&-
|
||||
exec <"${package_name}.patch"
|
||||
HAS_PATCH=true
|
||||
fi
|
||||
}
|
||||
@@ -1085,7 +1140,7 @@ setup_builtin_patches() {
|
||||
cleanup_builtin_patches() {
|
||||
local package_name="$1"
|
||||
rm -f "${package_name}.patch"
|
||||
HAS_PATCH="$ORIG_HAS_PATCH"
|
||||
unset HAS_PATCH
|
||||
}
|
||||
|
||||
fix_directory_permissions() {
|
||||
@@ -1094,7 +1149,7 @@ fix_directory_permissions() {
|
||||
}
|
||||
|
||||
require_java7() {
|
||||
local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -1)"
|
||||
local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -n1)"
|
||||
if [[ $version != *[789]* ]]; then
|
||||
colorize 1 "ERROR" >&3
|
||||
echo ": Java 7 required. Please install a 1.7-compatible JRE." >&3
|
||||
@@ -1149,7 +1204,7 @@ require_gcc() {
|
||||
|
||||
export CC="$gcc"
|
||||
if is_mac -ge 1010; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.9
|
||||
export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-10.9}
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -1335,8 +1390,8 @@ use_homebrew() {
|
||||
local brew_prefix="$(brew --prefix 2>/dev/null || true)"
|
||||
# /usr/local/lib:/usr/lib is the default library search path
|
||||
if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then
|
||||
export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I${brew_prefix}/include"
|
||||
export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib"
|
||||
export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${brew_prefix}/include"
|
||||
export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib"
|
||||
# `python-config` ignores LDFLAGS envvar. Adding to LIBS is the only way to add extra stuff
|
||||
# to `python-config --ldflags` output
|
||||
export LIBS="${LIBS:+${LIBS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib"
|
||||
@@ -1354,8 +1409,8 @@ use_homebrew_yaml() {
|
||||
local libdir="$(brew --prefix libyaml 2>/dev/null || true)"
|
||||
if [ -d "$libdir" ]; then
|
||||
echo "python-build: use libyaml from homebrew"
|
||||
export CPPFLAGS="-I$libdir/include ${CPPFLAGS}"
|
||||
export LDFLAGS="-L$libdir/lib ${LDFLAGS}"
|
||||
export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}"
|
||||
export LDFLAGS="-L$libdir/lib${LDFLAGS:+ ${LDFLAGS% }}"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
@@ -1366,20 +1421,26 @@ use_freebsd_pkg() {
|
||||
if [ "FreeBSD" = "$(uname -s)" ]; then
|
||||
# use openssl if installed from Ports Collection
|
||||
if [ -f /usr/local/include/openssl/ssl.h ]; then
|
||||
package_option ruby configure --with-openssl-dir="/usr/local"
|
||||
package_option python configure --with-openssl="/usr/local"
|
||||
fi
|
||||
|
||||
# check if 11-R or later
|
||||
release="$(uname -r)"
|
||||
if [ "${release%%.*}" -ge 11 ]; then
|
||||
# prefers readline to compile most of ruby versions
|
||||
if pkg info -e readline > /dev/null; then
|
||||
# use readline from Ports Collection
|
||||
package_option ruby configure --with-readline-dir="/usr/local"
|
||||
elif pkg info -e libedit > /dev/null; then
|
||||
# use libedit from Ports Collection
|
||||
package_option ruby configure --enable-libedit
|
||||
package_option ruby configure --with-libedit-dir="/usr/local"
|
||||
# Use packages from Ports Collection.
|
||||
#
|
||||
# Unlike Linux, BSD's cc does not look in /usr/local by default
|
||||
# where Ports-installed packages are, but they are available via pkg-config.
|
||||
# Surprisingly, CPython's Configure only uses pkg-config
|
||||
# to locate some of the dependencies and not others.
|
||||
# Here we detect those that are (as of this writing) known
|
||||
# to not be searched via pkg-config.
|
||||
#
|
||||
# XXX: As a side effect, this would pick up any other libs from Ports
|
||||
# that are searched via compiler
|
||||
if pkg info -e readline || pkg info -e sqlite3; then
|
||||
export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I/usr/local/include"
|
||||
export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L/usr/local/lib -Wl,-rpath,/usr/local/lib"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
@@ -1399,8 +1460,8 @@ use_homebrew_readline() {
|
||||
local libdir="$(brew --prefix readline 2>/dev/null || true)"
|
||||
if [ -d "$libdir" ]; then
|
||||
echo "python-build: use readline from homebrew"
|
||||
export CPPFLAGS="-I$libdir/include ${CPPFLAGS}"
|
||||
export LDFLAGS="-L$libdir/lib ${LDFLAGS}"
|
||||
export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}"
|
||||
export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
@@ -1418,8 +1479,8 @@ build_package_mac_readline() {
|
||||
READLINE_PREFIX_PATH="${PREFIX_PATH}/readline"
|
||||
|
||||
# Tell Python to use this readline for its extension.
|
||||
export CPPFLAGS="-I${READLINE_PREFIX_PATH}/include ${CPPFLAGS}"
|
||||
export LDFLAGS="-L${READLINE_PREFIX_PATH}/lib ${LDFLAGS}"
|
||||
export CPPFLAGS="-I${READLINE_PREFIX_PATH}/include${CPPFLAGS:+ $CPPFLAGS}"
|
||||
export LDFLAGS="-L${READLINE_PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
|
||||
# Make sure pkg-config finds our build first.
|
||||
export PKG_CONFIG_PATH="${READLINE_PREFIX_PATH}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
|
||||
@@ -1446,8 +1507,8 @@ use_homebrew_openssl() {
|
||||
# https://bugs.python.org/issue21541
|
||||
package_option python configure --with-openssl="${ssldir}"
|
||||
else
|
||||
export CPPFLAGS="-I$ssldir/include ${CPPFLAGS}"
|
||||
export LDFLAGS="-L$ssldir/lib ${LDFLAGS}"
|
||||
export CPPFLAGS="-I$ssldir/include ${CPPFLAGS:+ $CPPFLAGS}"
|
||||
export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
fi
|
||||
export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}"
|
||||
return
|
||||
@@ -1469,8 +1530,8 @@ build_package_mac_openssl() {
|
||||
# https://bugs.python.org/issue21541
|
||||
package_option python configure --with-openssl="${OPENSSL_PREFIX_PATH}"
|
||||
else
|
||||
export CPPFLAGS="-I${OPENSSL_PREFIX_PATH}/include ${CPPFLAGS}"
|
||||
export LDFLAGS="-L${OPENSSL_PREFIX_PATH}/lib ${LDFLAGS}"
|
||||
export CPPFLAGS="-I${OPENSSL_PREFIX_PATH}/include ${CPPFLAGS:+ $CPPFLAGS}"
|
||||
export LDFLAGS="-L${OPENSSL_PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
fi
|
||||
|
||||
# Make sure pkg-config finds our build first.
|
||||
@@ -1531,7 +1592,7 @@ build_package_verify_openssl() {
|
||||
RbConfig::CONFIG.fetch("configure_args").shellsplit.each { |arg| $stderr.puts " #{arg}" }
|
||||
exit 1
|
||||
end
|
||||
' "$(basename "$(type -P yum apt-get | head -1)")" >&4 2>&1
|
||||
' "$(basename "$(type -P yum apt-get | head -n1)")" >&4 2>&1
|
||||
}
|
||||
|
||||
use_homebrew_zlib() {
|
||||
@@ -1544,12 +1605,14 @@ use_homebrew_zlib() {
|
||||
}
|
||||
|
||||
use_xcode_sdk_zlib() {
|
||||
# If a custom compiler is used, including XCode SDK will likely break it
|
||||
[[ "${CC:-clang}" != "clang" || "$(command -v clang 2>/dev/null || true)" != "/usr/bin/clang" ]] && return 1
|
||||
local xc_sdk_path="$(xcrun --show-sdk-path 2>/dev/null || true)"
|
||||
if [ -d "$xc_sdk_path" ]; then
|
||||
echo "python-build: use zlib from xcode sdk"
|
||||
export CFLAGS="-I${xc_sdk_path}/usr/include ${CFLAGS}"
|
||||
export CFLAGS="${CFLAGS:+$CFLAGS }-I${xc_sdk_path}/usr/include"
|
||||
if is_mac -ge 1100; then
|
||||
export LDFLAGS="${LDFLAGS} -L${xc_sdk_path}/usr/lib"
|
||||
export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${xc_sdk_path}/usr/lib"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@@ -1560,9 +1623,12 @@ use_homebrew_tcltk() {
|
||||
local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)"
|
||||
if [ -d "$tcltk_libdir" ]; then
|
||||
echo "python-build: use tcl-tk from homebrew"
|
||||
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
|
||||
package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
|
||||
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include"
|
||||
if [[ -z "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then
|
||||
local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')"
|
||||
package_option python configure --with-tcltk-libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version"
|
||||
package_option python configure --with-tcltk-includes="-I$tcltk_libdir/include"
|
||||
fi
|
||||
export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -1645,7 +1711,7 @@ build_package_auto_tcltk() {
|
||||
if is_mac && [ ! -d /usr/include/X11 ]; then
|
||||
if [ -d /opt/X11/include ]; then
|
||||
if [[ "$CPPFLAGS" != *-I/opt/X11/include* ]]; then
|
||||
export CPPFLAGS="-I/opt/X11/include $CPPFLAGS"
|
||||
export CPPFLAGS="-I/opt/X11/include${CPPFLAGS:+ $CPPFLAGS}"
|
||||
fi
|
||||
else
|
||||
package_option python configure --without-tk
|
||||
@@ -1653,35 +1719,37 @@ build_package_auto_tcltk() {
|
||||
fi
|
||||
}
|
||||
|
||||
# extglob must be set at parse time, not at runtime
|
||||
# extglob must be set at both parse time and runtime
|
||||
# https://stackoverflow.com/questions/49283740/bash-script-throws-syntax-errors-when-the-extglob-option-is-set-inside-a-subsh
|
||||
#
|
||||
# The function is *parsed* with "extglob" only if an outer `shopt -s exglob`
|
||||
# exists; at *runtime* you still need to activate it *within* the function.
|
||||
#
|
||||
shopt -s extglob
|
||||
apply_python_patch() {
|
||||
local patchfile
|
||||
# needed at runtime
|
||||
package_is_python() {
|
||||
shopt -s extglob
|
||||
case "$1" in
|
||||
Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* )
|
||||
patchfile="$(mktemp "${TMP}/python-patch.XXXXXX")"
|
||||
cat "${2:--}" >"$patchfile"
|
||||
|
||||
local striplevel=0
|
||||
grep -q '^diff --git a/' "$patchfile" && striplevel=1
|
||||
patch -p$striplevel --force -i "$patchfile"
|
||||
;;
|
||||
Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* )
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
return 1
|
||||
shopt -u extglob
|
||||
}
|
||||
shopt -u extglob
|
||||
|
||||
apply_patch() {
|
||||
local package_name="$1"
|
||||
local patchfile
|
||||
patchfile="$(mktemp "${TMP}/python-patch.XXXXXX")"
|
||||
cat "${2:--}" >"$patchfile"
|
||||
|
||||
local striplevel=0
|
||||
grep -q '^diff --git a/' "$patchfile" && striplevel=1
|
||||
patch -p$striplevel --force -i "$patchfile"
|
||||
}
|
||||
|
||||
|
||||
build_package_symlink_version_suffix() {
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||
if [[ "${PYTHON_CONFIGURE_OPTS_ARRAY[*]} $CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||
if [ -e "${PREFIX_PATH}/bin" ]; then
|
||||
# Always create `bin` as symlink to framework path if the version was built with `--enable-frameowrk` (#590)
|
||||
# Always create `bin` as symlink to framework path if the version was built with `--enable-framework` (#590)
|
||||
rm -rf "${PREFIX_PATH}/bin.orig"
|
||||
mv -f "${PREFIX_PATH}/bin" "${PREFIX_PATH}/bin.orig"
|
||||
fi
|
||||
@@ -1735,7 +1803,7 @@ verify_python() {
|
||||
}
|
||||
|
||||
try_python_module() {
|
||||
if ! "$PYTHON_BIN" -c "import $1" 1>/dev/null 2>&1; then
|
||||
if ! "$PYTHON_BIN" -c "import $1"; then
|
||||
{ colorize 1 "WARNING"
|
||||
echo ": The Python $1 extension was not compiled${3:+ $3}. Missing the ${2:-$1}?"
|
||||
return 0
|
||||
@@ -1744,7 +1812,7 @@ try_python_module() {
|
||||
}
|
||||
|
||||
verify_python_module() {
|
||||
if ! "$PYTHON_BIN" -c "import $1" 1>/dev/null 2>&1; then
|
||||
if ! "$PYTHON_BIN" -c "import $1"; then
|
||||
{ colorize 1 "ERROR"
|
||||
echo ": The Python $1 extension was not compiled. Missing the ${2:-$1}?"
|
||||
echo
|
||||
@@ -1890,6 +1958,11 @@ build_package_verify_py312() {
|
||||
build_package_verify_py311 "$1" "${2:-3.12}"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.13.x
|
||||
build_package_verify_py313() {
|
||||
build_package_verify_py312 "$1" "${2:-3.13}"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.x rolling release scripts
|
||||
# XXX: Will need splitting into project-specific ones if there emerge
|
||||
# multiple rolling-release scripts with different checks needed
|
||||
@@ -2016,7 +2089,7 @@ for option in "${OPTIONS[@]}"; do
|
||||
VERBOSE=true
|
||||
;;
|
||||
"p" | "patch" )
|
||||
HAS_PATCH=true
|
||||
HAS_STDIN_PATCH=true
|
||||
;;
|
||||
"g" | "debug" )
|
||||
DEBUG=true
|
||||
@@ -2135,26 +2208,31 @@ if [ -n "$DEBUG" ]; then
|
||||
package_option python configure --with-pydebug
|
||||
fi
|
||||
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--enable-framework"* && "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--disable-shared"* ]]; then
|
||||
package_option python configure --enable-shared
|
||||
fi
|
||||
|
||||
# python-build: Specify `--libdir` on configure to fix build on openSUSE (#36)
|
||||
package_option python configure --libdir="${PREFIX_PATH}/lib"
|
||||
|
||||
# python-build: Set `RPATH` if `--enable-shared` was given (#65, #66, #82)
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-shared"* ]]; then
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS ${PYTHON_CONFIGURE_OPTS_ARRAY[@]}" == *"--enable-shared"* ]]; then
|
||||
# The ld on Darwin embeds the full paths to each dylib by default
|
||||
if [[ "$LDFLAGS" != *"-rpath="* ]] && ! is_mac; then
|
||||
export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}"
|
||||
if [[ "$LDFLAGS" != *"-rpath="* ]] ; then
|
||||
export LDFLAGS="-Wl,-rpath,${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# python-build: Set `RPATH` if --shared` was given for PyPy (#244)
|
||||
if [[ "$PYPY_OPTS" == *"--shared"* ]]; then
|
||||
export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}"
|
||||
export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
fi
|
||||
|
||||
# Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
|
||||
shopt -s extglob
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then
|
||||
if ! is_mac; then
|
||||
echo "python-build: framework installation is not supported." >&2
|
||||
echo "python-build: framework installation is not supported outside of MacOS." >&2
|
||||
exit 1
|
||||
fi
|
||||
create_framework_dirs() {
|
||||
@@ -2170,15 +2248,29 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; the
|
||||
create_framework_dirs "${DEFINITION_PATH##*/}"
|
||||
# the `/Library/Frameworks` suffix makes CPython build install apps under prefix rather than into /Applications (#1003)
|
||||
package_option python configure --enable-framework="${PREFIX_PATH}/Library/Frameworks"
|
||||
|
||||
#FIXME: doesn't properly handle paths with spaces. Fix by parsing *OPTS into arrays.
|
||||
CONFIGURE_OPTS="${CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}";
|
||||
CONFIGURE_OPTS="${CONFIGURE_OPTS% }"
|
||||
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}";
|
||||
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }"
|
||||
fi
|
||||
shopt -u extglob
|
||||
|
||||
# Build against universal SDK
|
||||
shopt -s extglob
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then
|
||||
if ! is_mac; then
|
||||
echo "python-build: universal installation is not supported." >&2
|
||||
echo "python-build: universal installation is not supported outside of MacOS." >&2
|
||||
exit 1
|
||||
fi
|
||||
package_option python configure --enable-universalsdk=/
|
||||
#FIXME: doesn't properly handle paths with spaces. Fix by parsing *OPTS into arrays.
|
||||
CONFIGURE_OPTS="${CONFIGURE_OPTS//--enable-universalsdk?(=*([^ ]))?( )/}"
|
||||
CONFIGURE_OPTS="${CONFIGURE_OPTS% }"
|
||||
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-universalsdk?(=*([^ ]))?( )/}"
|
||||
PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }"
|
||||
|
||||
if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--with-universal-archs"* ]]; then
|
||||
# in CPython's configure.ac, --with-universal-archs defaults to 'intel' which means i386 + x86_64
|
||||
# since 2.7.5 and 3.3.0 -- i.e. in all non-EOL versions
|
||||
@@ -2188,6 +2280,7 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]];
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
shopt -u extglob
|
||||
|
||||
# Compile with `--enable-unicode=ucs4` by default (#257)
|
||||
if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then
|
||||
@@ -2314,8 +2407,8 @@ if [ -n "$VERBOSE" ]; then
|
||||
trap "kill $TAIL_PID" SIGINT SIGTERM EXIT
|
||||
fi
|
||||
|
||||
export LDFLAGS="-L${PREFIX_PATH}/lib ${LDFLAGS}"
|
||||
export CPPFLAGS="-I${PREFIX_PATH}/include ${CPPFLAGS}"
|
||||
export LDFLAGS="-L${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}"
|
||||
export CPPFLAGS="-I${PREFIX_PATH}/include${CPPFLAGS:+ $CPPFLAGS}"
|
||||
|
||||
unset PYTHONHOME
|
||||
unset PYTHONPATH
|
||||
|
||||
@@ -108,6 +108,7 @@ class PyVersion(StrEnum):
|
||||
PY37 = "py37"
|
||||
PY38 = "py38"
|
||||
PY39 = "py39"
|
||||
PY310 = "py310"
|
||||
|
||||
def version(self):
|
||||
first, *others = self.value[2:]
|
||||
@@ -120,7 +121,7 @@ class PyVersion(StrEnum):
|
||||
@total_ordering
|
||||
class VersionStr(str):
|
||||
def info(self):
|
||||
return tuple(int(n) for n in self.split("."))
|
||||
return tuple(int(n) for n in self.replace("-", ".").split("."))
|
||||
|
||||
def __eq__(self, other):
|
||||
return str(self) == str(other)
|
||||
@@ -199,7 +200,7 @@ class CondaVersion(NamedTuple):
|
||||
return PyVersion.PY37
|
||||
return PyVersion.PY36
|
||||
|
||||
raise ValueError(flavor)
|
||||
raise ValueError(self.flavor)
|
||||
|
||||
|
||||
class CondaSpec(NamedTuple):
|
||||
@@ -213,7 +214,10 @@ class CondaSpec(NamedTuple):
|
||||
|
||||
@classmethod
|
||||
def from_filestem(cls, stem, md5, repo, py_version=None):
|
||||
miniconda_n, ver, os, arch = stem.split("-")
|
||||
# The `*vers` captures the new trailing `-1` in some file names (a build number?)
|
||||
# so they can be processed properly.
|
||||
miniconda_n, *vers, os, arch = stem.split("-")
|
||||
ver = "-".join(vers)
|
||||
suffix = miniconda_n[-1]
|
||||
if suffix in string.digits:
|
||||
tflavor = miniconda_n[:-1]
|
||||
@@ -371,7 +375,7 @@ if __name__ == "__main__":
|
||||
reason = "already exists"
|
||||
elif key.version_str.info() <= (4, 3, 30):
|
||||
reason = "too old"
|
||||
elif len(key.version_str.info()) >= 4:
|
||||
elif len(key.version_str.info()) >= 4 and "-" not in key.version_str:
|
||||
reason = "ignoring hotfix releases"
|
||||
|
||||
if reason:
|
||||
|
||||
104
plugins/python-build/scripts/add_miniforge.py
Executable file
104
plugins/python-build/scripts/add_miniforge.py
Executable file
@@ -0,0 +1,104 @@
|
||||
#!/usr/bin/env python3
|
||||
'Adds the latest miniforge and mambaforge releases.'
|
||||
from pathlib import Path
|
||||
import logging
|
||||
import os
|
||||
import string
|
||||
|
||||
import requests
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO'))
|
||||
|
||||
MINIFORGE_REPO = 'conda-forge/miniforge'
|
||||
PYTHON_VERSION = '310'
|
||||
DISTRIBUTIONS = ['miniforge', 'mambaforge']
|
||||
|
||||
install_script_fmt = """
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
{install_lines}
|
||||
* )
|
||||
{{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of {flavor} is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
}} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
""".lstrip()
|
||||
|
||||
install_line_fmt = """
|
||||
"{os}-{arch}" )
|
||||
install_script "{filename}" "{url}#{sha}" "miniconda" verify_py{py_version}
|
||||
;;
|
||||
""".strip()
|
||||
|
||||
here = Path(__file__).resolve()
|
||||
out_dir: Path = here.parent.parent / "share" / "python-build"
|
||||
|
||||
def download_sha(url):
|
||||
logger.debug('Downloading SHA file %(url)s', locals())
|
||||
tup = tuple(reversed(requests.get(url).text.replace('./', '').rstrip().split()))
|
||||
logger.debug('Got %(tup)s', locals())
|
||||
return tup
|
||||
|
||||
def create_spec(filename, sha, url):
|
||||
flavor_with_suffix, version, subversion, os, arch = filename.replace('.sh', '').split('-')
|
||||
suffix = flavor_with_suffix[-1]
|
||||
|
||||
if suffix in string.digits:
|
||||
flavor = flavor_with_suffix[:-1]
|
||||
else:
|
||||
flavor = flavor_with_suffix
|
||||
|
||||
spec = {
|
||||
'filename': filename,
|
||||
'sha': sha,
|
||||
'url': url,
|
||||
'py_version': PYTHON_VERSION,
|
||||
'flavor': flavor,
|
||||
'os': os,
|
||||
'arch': arch,
|
||||
'installer_filename': f'{flavor_with_suffix.lower()}-{version}-{subversion}',
|
||||
}
|
||||
|
||||
logger.debug('Created spec %(spec)s', locals())
|
||||
|
||||
return spec
|
||||
|
||||
def supported(filename):
|
||||
return ('pypy' not in filename) and ('Windows' not in filename)
|
||||
|
||||
def add_version(release):
|
||||
download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] }
|
||||
shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256')])
|
||||
specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)]
|
||||
|
||||
for distribution in DISTRIBUTIONS:
|
||||
distribution_specs = [spec for spec in specs if distribution in spec['flavor'].lower()]
|
||||
count = len(distribution_specs)
|
||||
|
||||
if count > 0:
|
||||
output_file = out_dir / distribution_specs[0]['installer_filename']
|
||||
|
||||
logger.info('Writing %(count)d specs for %(distribution)s to %(output_file)s', locals())
|
||||
|
||||
script_str = install_script_fmt.format(
|
||||
install_lines="\n".join([install_line_fmt.format_map(s) for s in distribution_specs]),
|
||||
flavor=distribution_specs[0]['flavor'],
|
||||
)
|
||||
|
||||
with open(output_file, 'w') as f:
|
||||
f.write(script_str)
|
||||
else:
|
||||
logger.info('Did not find specs for %(distribution)s', locals())
|
||||
|
||||
for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/releases').json():
|
||||
version = release['tag_name']
|
||||
|
||||
logger.info('Looking for %(version)s in %(out_dir)s', locals())
|
||||
|
||||
if not list(out_dir.glob(f'*-{version}')):
|
||||
logger.info('Downloading %(version)s', locals())
|
||||
add_version(release)
|
||||
9
plugins/python-build/share/python-build/3.10.10
Normal file
9
plugins/python-build/share/python-build/3.10.10
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.10" "https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tar.xz#0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3" standard verify_py310 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.10.10" "https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tgz#fba64559dde21ebdc953e4565e731573bb61159de8e4d4cedee70fb1196f610d" standard verify_py310 copy_python_gdb ensurepip
|
||||
fi
|
||||
9
plugins/python-build/share/python-build/3.10.11
Normal file
9
plugins/python-build/share/python-build/3.10.11
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.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tar.xz#3c3bc3048303721c904a03eb8326b631e921f11cc3be2988456a42f115daf04c" standard verify_py310 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.10.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz#f3db31b668efa983508bd67b5712898aa4247899a346f2eb745734699ccd3859" standard verify_py310 copy_python_gdb ensurepip
|
||||
fi
|
||||
9
plugins/python-build/share/python-build/3.10.12
Normal file
9
plugins/python-build/share/python-build/3.10.12
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.12" "https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tar.xz#afb74bf19130e7a47d10312c8f5e784f24e0527981eab68e20546cfb865830b8" standard verify_py310 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.10.12" "https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz#a43cd383f3999a6f4a7db2062b2fc9594fefa73e175b3aedafa295a51a7bb65c" standard verify_py310 copy_python_gdb ensurepip
|
||||
fi
|
||||
9
plugins/python-build/share/python-build/3.10.8
Normal file
9
plugins/python-build/share/python-build/3.10.8
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.8" "https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tar.xz#6a30ecde59c47048013eb5a658c9b5dec277203d2793667f578df7671f7f03f3" standard verify_py310 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.10.8" "https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz#f400c3fb394b8bef1292f6dc1292c5fadc3533039a5bc0c3e885f3e16738029a" standard verify_py310 copy_python_gdb ensurepip
|
||||
fi
|
||||
9
plugins/python-build/share/python-build/3.10.9
Normal file
9
plugins/python-build/share/python-build/3.10.9
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.9" "https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tar.xz#5ae03e308260164baba39921fdb4dbf8e6d03d8235a939d4582b33f0b5e46a83" standard verify_py310 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.10.9" "https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz#4ccd7e46c8898f4c7862910a1703aa0e63525913a519abb2f55e26220a914d88" standard verify_py310 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -1,5 +1,6 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_git "Python-3.11-dev" "https://github.com/python/cpython" 3.11 standard verify_py311 copy_python_gdb ensurepip
|
||||
|
||||
10
plugins/python-build/share/python-build/3.11.0
Normal file
10
plugins/python-build/share/python-build/3.11.0
Normal file
@@ -0,0 +1,10 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz#a57dc82d77358617ba65b9841cee1e3b441f386c3789ddc0676eca077f2951c3" standard verify_py311 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz#64424e96e2457abbac899b90f9530985b51eef2905951febd935f0e73414caeb" standard verify_py311 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -1,9 +0,0 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.11.0rc2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc2.tar.xz#25b35cc7d82c5ad34d867b179a1c1695d129be5ed14a21e46b6b7f2350a8b490" standard verify_py311 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.11.0rc2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc2.tgz#d653d52498fa8e711f8b6bf42051e24a1fd14e21f48dba500803ab7e9218d6ec" standard verify_py311 copy_python_gdb ensurepip
|
||||
fi
|
||||
10
plugins/python-build/share/python-build/3.11.1
Normal file
10
plugins/python-build/share/python-build/3.11.1
Normal file
@@ -0,0 +1,10 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
install_package "openssl-1.1.1s" "https://www.openssl.org/source/openssl-1.1.1s.tar.gz#c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.11.1" "https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tar.xz#85879192f2cffd56cb16c092905949ebf3e5e394b7f764723529637901dfb58f" standard verify_py311 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.11.1" "https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tgz#baed518e26b337d4d8105679caf68c5c32630d702614fc174e98cb95c46bdfa4" standard verify_py311 copy_python_gdb ensurepip
|
||||
fi
|
||||
10
plugins/python-build/share/python-build/3.11.2
Normal file
10
plugins/python-build/share/python-build/3.11.2
Normal file
@@ -0,0 +1,10 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
install_package "openssl-1.1.1s" "https://www.openssl.org/source/openssl-1.1.1s.tar.gz#c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.11.2" "https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tar.xz#29e4b8f5f1658542a8c13e2dd277358c9c48f2b2f7318652ef1675e402b9d2af" standard verify_py311 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.11.2" "https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgz#2411c74bda5bbcfcddaf4531f66d1adc73f247f529aee981b029513aefdbf849" standard verify_py311 copy_python_gdb ensurepip
|
||||
fi
|
||||
10
plugins/python-build/share/python-build/3.11.3
Normal file
10
plugins/python-build/share/python-build/3.11.3
Normal file
@@ -0,0 +1,10 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
install_package "openssl-1.1.1s" "https://www.openssl.org/source/openssl-1.1.1s.tar.gz#c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz#8a5db99c961a7ecf27c75956189c9602c968751f11dbeae2b900dbff1c085b5e" standard verify_py311 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz#1a79f3df32265d9e6625f1a0b31c28eb1594df911403d11f3320ee1da1b3e048" standard verify_py311 copy_python_gdb ensurepip
|
||||
fi
|
||||
10
plugins/python-build/share/python-build/3.11.4
Normal file
10
plugins/python-build/share/python-build/3.11.4
Normal file
@@ -0,0 +1,10 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
install_package "openssl-1.1.1s" "https://www.openssl.org/source/openssl-1.1.1s.tar.gz#c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.11.4" "https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz#2f0e409df2ab57aa9fc4cbddfb976af44e4e55bf6f619eee6bc5c2297264a7f6" standard verify_py311 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.11.4" "https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz#85c37a265e5c9dd9f75b35f954e31fbfc10383162417285e30ad25cc073a0d63" standard verify_py311 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -1,6 +1,7 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_git "Python-3.12-dev" "https://github.com/python/cpython" main standard verify_py312 copy_python_gdb ensurepip
|
||||
install_git "Python-3.12-dev" "https://github.com/python/cpython" 3.12 standard verify_py312 copy_python_gdb ensurepip
|
||||
|
||||
9
plugins/python-build/share/python-build/3.12.0b3
Normal file
9
plugins/python-build/share/python-build/3.12.0b3
Normal file
@@ -0,0 +1,9 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1s" "https://www.openssl.org/source/openssl-1.1.1s.tar.gz#c5ac01e760ee6ff0dab61d6b2bbd30146724d063eb322180c6f18a6f74e4b6aa" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.12.0b3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b3.tar.xz#9160c6065e9885b37c2e57865d0bb27fc7e54aaa9c186c761da30d2bddbcc9ee" standard verify_py312 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.12.0b3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b3.tgz#ef50ddb9e55d7ac25f8fa2130e6cc52247556167c5be51081fe2c7c1a67476f4" standard verify_py312 copy_python_gdb ensurepip
|
||||
fi
|
||||
7
plugins/python-build/share/python-build/3.13-dev
Normal file
7
plugins/python-build/share/python-build/3.13-dev
Normal file
@@ -0,0 +1,7 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_git "Python-3.13-dev" "https://github.com/python/cpython" main standard verify_py313 copy_python_gdb ensurepip
|
||||
9
plugins/python-build/share/python-build/3.7.15
Normal file
9
plugins/python-build/share/python-build/3.7.15
Normal file
@@ -0,0 +1,9 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.7.15" "https://www.python.org/ftp/python/3.7.15/Python-3.7.15.tar.xz#5911475a07ac2b53d746e88a0716af6d2b4734941919136ea0d33fb9c75b9714" standard verify_py37 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.7.15" "https://www.python.org/ftp/python/3.7.15/Python-3.7.15.tgz#cf2993798ae8430f3af3a00d96d9fdf320719f4042f039380dca79967c25e436" standard verify_py37 copy_python_gdb ensurepip
|
||||
fi
|
||||
9
plugins/python-build/share/python-build/3.7.16
Normal file
9
plugins/python-build/share/python-build/3.7.16
Normal file
@@ -0,0 +1,9 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.7.16" "https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tar.xz#8338f0c2222d847e904c955369155dc1beeeed806e8d5ef04b00ef4787238bfd" standard verify_py37 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.7.16" "https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz#0cf2da07fa464636755215415909e22eb1d058817af4824bc15af8390d05fb38" standard verify_py37 copy_python_gdb ensurepip
|
||||
fi
|
||||
9
plugins/python-build/share/python-build/3.7.17
Normal file
9
plugins/python-build/share/python-build/3.7.17
Normal file
@@ -0,0 +1,9 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.7.17" "https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tar.xz#7911051ed0422fd54b8f59ffc030f7cf2ae30e0f61bda191800bb040dce4f9d2" standard verify_py37 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.7.17" "https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tgz#fd50161bc2a04f4c22a0971ff0f3856d98b4bf294f89740a9f06b520aae63b49" standard verify_py37 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
12
plugins/python-build/share/python-build/3.8.15
Normal file
12
plugins/python-build/share/python-build/3.8.15
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.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.8.15" "https://www.python.org/ftp/python/3.8.15/Python-3.8.15.tar.xz#5114fc7918a2a5e20eb5aac696b30c36f412c6ef24b13f5c9eb9e056982d9550" standard verify_py38 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.8.15" "https://www.python.org/ftp/python/3.8.15/Python-3.8.15.tgz#924d46999df82aa2eaa1de5ca51d6800ffb56b4bf52486a28f40634e3362abc4" standard verify_py38 copy_python_gdb ensurepip
|
||||
fi
|
||||
12
plugins/python-build/share/python-build/3.8.16
Normal file
12
plugins/python-build/share/python-build/3.8.16
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.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.8.16" "https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tar.xz#d85dbb3774132473d8081dcb158f34a10ccad7a90b96c7e50ea4bb61f5ce4562" standard verify_py38 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.8.16" "https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz#71ca9d935637ed2feb59e90a368361dc91eca472a90acb1d344a2e8178ccaf10" standard verify_py38 copy_python_gdb ensurepip
|
||||
fi
|
||||
12
plugins/python-build/share/python-build/3.8.17
Normal file
12
plugins/python-build/share/python-build/3.8.17
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.17" "https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tar.xz#2e54b0c68191f16552f6de2e97a2396540572a219f6bbb28591a137cecc490a9" standard verify_py38 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.8.17" "https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tgz#def428fa6cf61b66bcde72e3d9f7d07d33b2e4226f04f9d6fce8384c055113ae" standard verify_py38 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
12
plugins/python-build/share/python-build/3.9.15
Normal file
12
plugins/python-build/share/python-build/3.9.15
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.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.9.15" "https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tar.xz#12daff6809528d9f6154216950423c9e30f0e47336cb57c6aa0b4387dd5eb4b2" standard verify_py39 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.9.15" "https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz#48d1ccb29d5fbaf1fb8f912271d09f7450e426d4dfe95978ef6aaada70ece4d8" standard verify_py39 copy_python_gdb ensurepip
|
||||
fi
|
||||
12
plugins/python-build/share/python-build/3.9.16
Normal file
12
plugins/python-build/share/python-build/3.9.16
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.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.9.16" "https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz#22dddc099246dd2760665561e8adb7394ea0cc43a72684c6480f9380f7786439" standard verify_py39 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.9.16" "https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz#1ad539e9dbd2b42df714b69726e0693bc6b9d2d2c8e91c2e43204026605140c5" standard verify_py39 copy_python_gdb ensurepip
|
||||
fi
|
||||
12
plugins/python-build/share/python-build/3.9.17
Normal file
12
plugins/python-build/share/python-build/3.9.17
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.17" "https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tar.xz#30ce057c44f283f8ed93606ccbdb8d51dd526bdc4c62cce5e0dc217bfa3e8cee" standard verify_py39 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.9.17" "https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tgz#8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014" standard verify_py39 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181)
|
||||
export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}"
|
||||
|
||||
install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
|
||||
28
plugins/python-build/share/python-build/anaconda3-2022.10
Normal file
28
plugins/python-build/share/python-build/anaconda3-2022.10
Normal file
@@ -0,0 +1,28 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Anaconda3-2022.10-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-aarch64.sh#dac187c9fa6cae4ad663937f0ef79c8f" "anaconda" verify_py39
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Anaconda3-2022.10-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-ppc64le.sh#8dee159ac42f80eca8ce99ddbfd94099" "anaconda" verify_py39
|
||||
;;
|
||||
"Linux-s390x" )
|
||||
install_script "Anaconda3-2022.10-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-s390x.sh#ef2a6accc4d0d77756130198cb481358" "anaconda" verify_py39
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Anaconda3-2022.10-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh#80256bd7a55509665c4179fd61516745" "anaconda" verify_py39
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Anaconda3-2022.10-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-MacOSX-arm64.sh#3a5d726f90e11270990e520905cf8466" "anaconda" verify_py39
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Anaconda3-2022.10-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-MacOSX-x86_64.sh#83fe2cbd4b32eeb63e99c3e15d72be85" "anaconda" verify_py39
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
28
plugins/python-build/share/python-build/anaconda3-2023.03
Normal file
28
plugins/python-build/share/python-build/anaconda3-2023.03
Normal file
@@ -0,0 +1,28 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Anaconda3-2023.03-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-aarch64.sh#613797154d9383355677f7dfee10db32b2c327cbedabddcb303598f242c79883" "anaconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Anaconda3-2023.03-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-ppc64le.sh#eafeaccca96f60ebb0aa0052d9baac8eaa2ee422358ee35b12f60f37e8a3ebb2" "anaconda" verify_py310
|
||||
;;
|
||||
"Linux-s390x" )
|
||||
install_script "Anaconda3-2023.03-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-s390x.sh#2648337081c3ce4b760457c5f00fb768ecd7d1d0957051ef5252ab380bb78233" "anaconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Anaconda3-2023.03-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh#19737d5c27b23a1d8740c5cb2414bf6253184ce745d0a912bb235a212a15e075" "anaconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Anaconda3-2023.03-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-arm64.sh#d27ee5432438972e90548e3dfa89490c5dc38a723f4dcd53061f0bd9d53b1bd0" "anaconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Anaconda3-2023.03-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-x86_64.sh#cc37b1eb85bdc2ade3f95201a746cdc63ee4fbfae48ee9d0c7a3cf319562452d" "anaconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
43
plugins/python-build/share/python-build/cinder-3.10-dev
Normal file
43
plugins/python-build/share/python-build/cinder-3.10-dev
Normal file
@@ -0,0 +1,43 @@
|
||||
if [ "$(expr substr "$(uname -s)" 1 5)" != "Linux" ]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder currently only supports Linux."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
if [[ $(${CC:-gcc} -dumpversion 2>/dev/null) != 10 ]] &&
|
||||
(command -v "gcc-10" >/dev/null) &&
|
||||
(command -v "g++-10" >/dev/null); then
|
||||
echo "python-build: setting the compiler to GCC 10"
|
||||
export CC="gcc-10"
|
||||
export CXX="g++-10"
|
||||
fi
|
||||
|
||||
if [[ $(awk -F. '{print $1}' <<< "$(${CC:-gcc} -dumpversion)") -lt 10 ]]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder requires at least GCC 10."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
require_distro Fedora 32 &> /dev/null ||
|
||||
{
|
||||
echo
|
||||
colorize 1 "WARNING"
|
||||
echo ": Cinder officially only supports Facebook's Docker"
|
||||
echo "images which are based on Fedora 32. It may fail to build"
|
||||
echo "on a system with a different GCC and/or Glibc version."
|
||||
echo
|
||||
} >&2
|
||||
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.1n" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_git "Cinder-3.10-dev" "https://github.com/facebookincubator/cinder" "cinder/3.10" standard verify_py310 copy_python_gdb ensurepip
|
||||
@@ -1,28 +1,40 @@
|
||||
require_distro Fedora 32 &>/dev/null || \
|
||||
{ echo
|
||||
colorize 1 "WARNING"
|
||||
cat >&2 <<!
|
||||
: The Cinder compiler only officially supports
|
||||
Facebook's Docker images which are Fedora 32 - based.
|
||||
It may fail to build on a system
|
||||
with a different GCC and/or Glibc version.
|
||||
!
|
||||
echo
|
||||
}
|
||||
if [ "$(expr substr "$(uname -s)" 1 5)" != "Linux" ]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder currently only supports Linux."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
[[ $(${CC:-gcc} -dumpversion 2>/dev/null) == 10 ]] || \
|
||||
{ command -v "gcc-10" >/dev/null && \
|
||||
export CC="gcc-10" && \
|
||||
echo "python-build: setting the compiler to \`gcc-10'"; } || \
|
||||
{
|
||||
echo
|
||||
colorize 1 WARNING
|
||||
cat >&2 <<!
|
||||
: GCC 10 is not found on PATH.
|
||||
The build may fail.
|
||||
!
|
||||
echo
|
||||
}
|
||||
if [[ $(${CC:-gcc} -dumpversion 2>/dev/null) != 10 ]] &&
|
||||
(command -v "gcc-10" >/dev/null) &&
|
||||
(command -v "g++-10" >/dev/null); then
|
||||
echo "python-build: setting the compiler to GCC 10"
|
||||
export CC="gcc-10"
|
||||
export CXX="g++-10"
|
||||
fi
|
||||
|
||||
if [[ $(awk -F. '{print $1}' <<< "$(${CC:-gcc} -dumpversion)") -lt 10 ]]; then
|
||||
{
|
||||
echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": Cinder requires at least GCC 10."
|
||||
echo
|
||||
return 1
|
||||
} >&2
|
||||
fi
|
||||
|
||||
require_distro Fedora 32 &> /dev/null ||
|
||||
{
|
||||
echo
|
||||
colorize 1 "WARNING"
|
||||
echo ": Cinder officially only supports Facebook's Docker"
|
||||
echo "images which are based on Fedora 32. It may fail to build"
|
||||
echo "on a system with a different GCC and/or Glibc version."
|
||||
echo
|
||||
} >&2
|
||||
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
|
||||
54
plugins/python-build/share/python-build/graalpy-22.3.0
Normal file
54
plugins/python-build/share/python-build/graalpy-22.3.0
Normal file
@@ -0,0 +1,54 @@
|
||||
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
# this software and associated documentation files (the "Software"), to deal in
|
||||
# the Software without restriction, including without limitation the rights to
|
||||
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
# of the Software, and to permit persons to whom the Software is furnished to do
|
||||
# so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
VERSION='22.3.0'
|
||||
BUILD=''
|
||||
|
||||
graalpy_arch="$(graalpy_architecture 2>/dev/null || true)"
|
||||
|
||||
case "$graalpy_arch" in
|
||||
"linux-amd64" )
|
||||
checksum="9853036fcde0b115026d8802a4f671b62d7a17fccb269c1e8b5fbf80cef10e23"
|
||||
;;
|
||||
"linux-aarch64" )
|
||||
checksum="c48c5d9ff5699046c0629181a40a3116172e1c508c851f0993dcca45d86349c0"
|
||||
;;
|
||||
"macos-amd64" )
|
||||
checksum="cc8454f460b5730e778d5b8f79385cf92c39321fbf27d44bb9ca90584670f921"
|
||||
;;
|
||||
"macos-aarch64" )
|
||||
checksum="9a388834f28fbb86ff9588d9a150a4d26e9bec28be06c3d60ebe20079f855e41"
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": No binary distribution of GraalPy is available for $(uname -sm)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "${BUILD}" ]; then
|
||||
urlprefix="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-${BUILD}"
|
||||
else
|
||||
urlprefix="https://github.com/oracle/graalpython/releases/download/vm-${VERSION}"
|
||||
fi
|
||||
|
||||
install_package "graalpy-${VERSION}${BUILD}" "${urlprefix}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip
|
||||
54
plugins/python-build/share/python-build/graalpy-23.0.0
Normal file
54
plugins/python-build/share/python-build/graalpy-23.0.0
Normal file
@@ -0,0 +1,54 @@
|
||||
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
# this software and associated documentation files (the "Software"), to deal in
|
||||
# the Software without restriction, including without limitation the rights to
|
||||
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
# of the Software, and to permit persons to whom the Software is furnished to do
|
||||
# so, subject to the following conditions:
|
||||
#
|
||||
# The above copyright notice and this permission notice shall be included in all
|
||||
# copies or substantial portions of the Software.
|
||||
#
|
||||
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
VERSION='23.0.0'
|
||||
BUILD=''
|
||||
|
||||
graalpy_arch="$(graalpy_architecture 2>/dev/null || true)"
|
||||
|
||||
case "$graalpy_arch" in
|
||||
"linux-amd64" )
|
||||
checksum="25e4fa7c1d45db6dcac5bfa4d1a0aa9ef5581623dc5903ce98d246c5d394639c"
|
||||
;;
|
||||
"linux-aarch64" )
|
||||
checksum="e2a00b2b6485282b4a04aa382e30d696e00d20eb2fe1736debbe2d9df2a8737a"
|
||||
;;
|
||||
"macos-amd64" )
|
||||
checksum="1578902976e6aaf45b9758931f0bddbb29c5c9bdca62c67591d6e153340c2a4f"
|
||||
;;
|
||||
"macos-aarch64" )
|
||||
checksum="cc40e1d47610c5f4a825a1a7c3ffe8b163c71b5d042d16aebd1a65451d4309a5"
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": No binary distribution of GraalPy is available for $(uname -sm)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "${BUILD}" ]; then
|
||||
urlprefix="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-${BUILD}"
|
||||
else
|
||||
urlprefix="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}"
|
||||
fi
|
||||
|
||||
install_package "graalpy-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip
|
||||
25
plugins/python-build/share/python-build/mambaforge-22.9.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-22.9.0-0
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-22.9.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-Linux-aarch64.sh#6076cfb0c2f88efa3e5e125dc54f3c0f8219cfe1ae9d9258a5abe42dbcf21a13" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-22.9.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-Linux-ppc64le.sh#a17530e0e981991db5f6875e949dc22554f2ed0dd2b1bbb40ce677c910a2dc51" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-Linux-x86_64.sh#7049f5ebdd6e2aee7611874599ab14445cd63070cdb63db2e00ae0b90d7c6132" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-22.9.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-MacOSX-arm64.sh#d116ea977a2117068d290a961212f10fdaf1cc6ad156ea14b3979e2e4c0499d9" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-MacOSX-x86_64.sh#03b0af9a3d343da8107edaf75713cea3b79c71aacbbeb8f06507d0dbd26c5218" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-22.9.0-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-22.9.0-1
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-22.9.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-Linux-aarch64.sh#2f60c1faadcf0660ac9a97e00c64edf8fd241664387a156685de4b72f36c657c" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-22.9.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-Linux-ppc64le.sh#525cf02648ad50a221c1f1ca5ecc4c05be6cbe829e7d994c17507b439d923e55" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-Linux-x86_64.sh#cba9a744454039944480871ed30d89e4e51a944a579b461dd9af60ea96560886" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-22.9.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-MacOSX-arm64.sh#90c9c6eccdef8d938c4f31d44f2553c706b89955a4750adbd09d7eeefbedc603" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-MacOSX-x86_64.sh#0afa53d38735762ee2a43174ee4ce726f076a1526f24122bd2faf7d0e005b61b" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-22.9.0-2
Normal file
25
plugins/python-build/share/python-build/mambaforge-22.9.0-2
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-22.9.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-Linux-aarch64.sh#26cf4a5cd3a3b9085f75911b459b969d6ff8ab426ef9a8e7ce3b47cc683ead86" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-22.9.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-Linux-ppc64le.sh#e13044cdbce8542896dd8b7128a00b691c119e7ad6e872c7de93ec9954b4775d" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-Linux-x86_64.sh#d2bb6c33f2373131fc71283baae9eb81a279708d007e55d627d85abe30c2d0eb" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-22.9.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-MacOSX-arm64.sh#21959f1a17a662b3f260e8b04fe2dfe82f1246746875a72f513d39159d8b816b" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-MacOSX-x86_64.sh#844fc1ac61967990f0cfb9e516e8b0704ac2e500854588fd9851d2790d817bab" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-22.9.0-3
Normal file
25
plugins/python-build/share/python-build/mambaforge-22.9.0-3
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-22.9.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-Linux-aarch64.sh#bd9694b1558f4ee6c4eef081cefc57dbb32ceb6406e497018f0c7d2dab5b61dd" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-22.9.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-Linux-ppc64le.sh#f19dc098452ddbd73caa83792aaacd63674be20898ac63b38ad687e5148199f8" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-Linux-x86_64.sh#29f6374464307732c2c9d6711cdbca4d685c632f31e8bf1a5565276c65e0069b" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-22.9.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-MacOSX-arm64.sh#eebe06970fec4cb1445bba106e65f57084b753d39766bf213edf4e02b14e27c1" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-22.9.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-MacOSX-x86_64.sh#a3ccaf7b93b6f99bc2018f2a6f3cd95489940731f11fb9bf6adf1a44a7ba4e17" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.2-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.2-0
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-Linux-aarch64.sh#cbc5329fa22f4d7ff10f66e59024b186d37653b9da31d841d23092a701f46b1f" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-Linux-ppc64le.sh#c682e2e1f07e2da07cbe6252559af363bb0b67aa315527887fe2dd5123ca8760" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-Linux-x86_64.sh#1e89ee86afa06e23b2478579be16a33fff6cff346314f6a6382fd20b1f83e669" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-MacOSX-arm64.sh#87768fed0097edf58a129981129142db2651ab5d1591e19c5840ade186b443c5" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-MacOSX-x86_64.sh#5a396db66672b5e6557e692bcb3cb527bcbe7c24b9c4a1c67b4449f8ef67cd47" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-0
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-Linux-aarch64.sh#d6d4fdf1d722c4afe9fdf5e372369321d5de9b491fdada22255665b122453fc7" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-Linux-ppc64le.sh#cdda287122007bdc6b96ed62fb17c7c8213e38b3598ad6db03d8301c81d7d594" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-Linux-x86_64.sh#5c3914235c0db8a8925d294a17d196fca7e6eab9175406fc78ed90fde34297db" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-MacOSX-arm64.sh#17a38bf23ef3f2864eb3c1ebf1c07389635ad9ff65f0692f438c1f6286feef63" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-MacOSX-x86_64.sh#43986b8c2a6b3535c2fa920c8001187c89695c0aaaa96c25696adb7746e0eb54" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-1
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-Linux-aarch64.sh#e830d626bcf8fccde1e64567fa9974d87fa45026c3baa73c889bab9a7fa60647" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-Linux-ppc64le.sh#ade3331e4946dc149c97346941c635ddef1b99d63ec0781027a0ae0d156f62d7" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-Linux-x86_64.sh#72c623cc9ce300c5ad54e0b383e428b13e5c640e74529295ab61fbbfa1a8acaa" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-MacOSX-arm64.sh#5d1e6ae4eb424290271fe25e7f8c3e8165ba5730a4817f92a157566f44c7e363" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-MacOSX-x86_64.sh#a8b0e666c893eb21769c00ab4ba603d28590f4c92d1fafe6ca2eb959cecf76ce" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-2
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-2
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-Linux-aarch64.sh#63294acfe2859c4a7b86151836da3253fd0370e9e0cd821be6ffb18a029c3a7a" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-Linux-ppc64le.sh#8162d50d3111a4c0746c7a4e51094eea3011966816768c4d3638fe40050d6e59" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-Linux-x86_64.sh#e4228930af7102de20019efdf45e4e9c056b6ae354cb2e344249e53a11f71175" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-MacOSX-arm64.sh#49132e1e2593b4ab3762ff238e76dfc5f5bd670fe23c622c5051607709f93a0b" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-MacOSX-x86_64.sh#cbd143702ed1d1176fa3b480eca1ec6eb0e32a2c9eab7134877ff32dabae91e0" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-3
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-3
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-Linux-aarch64.sh#c53eda563935e7ed5d07816477758374f4c541d912ee5732f2f9ace37d9fab75" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-Linux-ppc64le.sh#3b762a3cf77fffebc56d3ecdefe590bf065139b36f556bb57f7f83a0ebe8561b" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-Linux-x86_64.sh#a012c24e1cc3bcbe74a1e5693e510830e7c2956e85877b08d1e28707a0bd8d75" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-MacOSX-arm64.sh#6cbae54d7a2d99cdcf747d74412a0c6490c8240cbb2d870655f61a9600bc2f06" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-MacOSX-x86_64.sh#69f626a18eb1a6fda52d9f005114604acff1fd2d7c10d46e56543dca7d78f30d" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-4
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-4
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-Linux-aarch64.sh#f37435d5e2bc3eb14ec7f5bc64f9c45997f8e0a6d2fef3a7bb1ffa19f118817b" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-Linux-ppc64le.sh#68319a11298b8c13a15960cd9d2a5777fd34420b73587a7f2e8e4757752f3252" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-Linux-x86_64.sh#5017562c434185b4d9d311274c14717077f6c09a238a4d34a1caf7618d26ddd4" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-MacOSX-arm64.sh#901f2c2b4be08cadf6968f408d4a1ee632ddb011a07ce4b480b83d8da142255f" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-MacOSX-x86_64.sh#b5fd40995aebd7631f761324eb425ee813fb4604ce8d8fde3c03cb60cac1716e" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-5
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-5
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-5-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-Linux-aarch64.sh#5e471d796d7b1749949c0c0d79841e00f1b477833ce82b4b05b7b9886a1735eb" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-5-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-Linux-ppc64le.sh#892ccb32b847978062c8045e96827a403d59fe64f318e0b92303be6a08e4d3f7" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-5-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-Linux-x86_64.sh#2692f9ae27327412cbf018ec0218d21a99b013d0597ccaefc988540c8a9ced65" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-5-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-MacOSX-arm64.sh#1c7517e204814f7227ef0d2e0fbf95b43f6afae978e882cd017779e31f8b26cb" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-5-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-MacOSX-x86_64.sh#547823784a2b79641f29d06f70f74ae25775eec1680c6cca14888c4907441f5c" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-6
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-6
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-6-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-Linux-aarch64.sh#b6d3c0af4ba6202dc9994e70933d2de47ef8c4e6891afce768889a7d44e1db28" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-6-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-Linux-ppc64le.sh#9d50677aeff37b56b0d6067339aad8c964942e28fc74a24a7602416a3dcc35b2" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-6-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-Linux-x86_64.sh#c63907ba0971d2ca9a8775bd7ea48b635b2bdce4838b2f2d3a8e751876849595" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-6-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-MacOSX-arm64.sh#c753e99380e3f777d690e7131fc79c6f9cb8fb79af23fb53c7b8a0ade3361fec" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-6-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-MacOSX-x86_64.sh#955a6255871d9b53975e1c1581910844bcf33cbca613c7dba2842f6269917da6" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-7
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-7
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-7-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-Linux-aarch64.sh#ac95f137b287b3408e4f67f07a284357b1119ee157373b788b34e770ef2392b2" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-7-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-Linux-ppc64le.sh#21c0190d2462eea68c78a600ce28828238d6a450858a289d7d4c03d9a2551ee8" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-7-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-Linux-x86_64.sh#fc872522ec427fcab10167a93e802efaf251024b58cc27b084b915a9a73c4474" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-7-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-MacOSX-arm64.sh#49c7ba06fe663c634929d5d85b4c06840f4ab9844744be691aab90848c52444e" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-7-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-MacOSX-x86_64.sh#94ed8b8a647f48a815590958217aabebd4a3e3e10edaf2c5772d50a75727773a" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
16
plugins/python-build/share/python-build/mambaforge-4.10.3-8
Normal file
16
plugins/python-build/share/python-build/mambaforge-4.10.3-8
Normal file
@@ -0,0 +1,16 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-8-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-8/Mambaforge-4.10.3-8-MacOSX-arm64.sh#f40271609a59bad71e7b1c6fa61a36065ea35222a9497614bc970572594e1f5a" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-8-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-8/Mambaforge-4.10.3-8-MacOSX-x86_64.sh#4f3dfd9475ed226f6a4478fe5c0585117528700557fe06fb9db054a354f07951" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.10.3-9
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.10.3-9
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.10.3-9-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-Linux-aarch64.sh#91fcdf2dfca49d68daaa9927d38f77a82718b5b72333180f9855e5b2cfa07c3b" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.10.3-9-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-Linux-ppc64le.sh#4873079e88bcda0225af7c6acf59b48b272bb147ab9506e1b80cdab035a53b02" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-9-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-Linux-x86_64.sh#f53ab6584385a4648608993de2a66bb84b9255c87e1f4315bb39cbfc05b19e87" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.10.3-9-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-MacOSX-arm64.sh#968fe531ee2d9900409853085e6b458077144c1674061a5501938e3581b5adf4" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.10.3-9-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-MacOSX-x86_64.sh#d669b345a7612552a9a218e3499b7a3a7c8deec2925d203155bd0922250b2823" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.11.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.11.0-0
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-aarch64.sh#9ad5db1775ed7f6a390774a7b7a2aeac3992499ee4b01e801f53528857112dc0" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-ppc64le.sh#6fe80e207d409eb6c0922e068aa23aff5032083d9a5c2aacecc446a1d20f357b" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-x86_64.sh#49268ee30d4418be4de852dda3aa4387f8c95b55a76f43fb1af68dcbf8b205c3" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-MacOSX-arm64.sh#7703e27a2ceadb747a69f2c6a88b3cb859cb4bb4268fc85b03739e22d0eb160b" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-MacOSX-x86_64.sh#2039f744e272d47878f0bc2ae372f03c7f07881f39a93d693d5445744f36f19d" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.11.0-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.11.0-1
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.11.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-Linux-aarch64.sh#8b2cd64b89c7e92a444dd2df993a4c0aeda20b1d090aeef8956bbb3fa5c526fe" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.11.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-Linux-ppc64le.sh#c7fb2000b4447a410fd18d334a9b658f8682b19962fe0e22d1d003078dc89dfe" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-Linux-x86_64.sh#32eb24c99062d5c97d1b8ab55cae19e37cca08464a3249e5eac65339927697e9" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.11.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-MacOSX-arm64.sh#ce002867552011148b77e1df022465c584d25d0aec02fc15fdc96b68a0da1545" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-MacOSX-x86_64.sh#11b0e24649ca1931cfcc92ff2b3a67d43e7f2485a1f57b7f512b5b7cd6f3f27c" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.11.0-2
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.11.0-2
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.11.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-Linux-aarch64.sh#dc24d61b3c57fde5bb05367a9514bcdf7acd820f97ef913e94781c78dff55f8d" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.11.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-Linux-ppc64le.sh#8936568238c0ab4ae6444390cbe22853f8852080b5bc85912e1d41c8d3bbaea7" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-Linux-x86_64.sh#5708db10e2e84035f9ed5700731435bf4027c73b0d5d41562cb5cf5dd9048925" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.11.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-MacOSX-arm64.sh#8265d0902b6c3914a64afa7899c6398b1db7005603ad5d190dc0f0c87e8a8446" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-MacOSX-x86_64.sh#e6312bcd55bac1036ce0d3c52a36bf57d3f65d3ec4f36f6267617dbb7edfe16d" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
16
plugins/python-build/share/python-build/mambaforge-4.11.0-3
Normal file
16
plugins/python-build/share/python-build/mambaforge-4.11.0-3
Normal file
@@ -0,0 +1,16 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.11.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-3/Mambaforge-4.11.0-3-MacOSX-arm64.sh#7f16bf19722987cba7b077a010276262d8c3b521cb5c759f0b981e0fb0877d50" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-3/Mambaforge-4.11.0-3-MacOSX-x86_64.sh#e0e60c1542d087b514c3a81a1d4df9f0cc1d127b5245f1685bf77b2562ad6314" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.11.0-4
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.11.0-4
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.11.0-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-aarch64.sh#e2105e962f19a764c33d986f6e6850a3ce9aef9efc9571c7293b5274c335231d" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.11.0-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-ppc64le.sh#d50a94a0fd367242db4bf5121ba4fd9356e171c79444d2226081275baa31e63a" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-x86_64.sh#3f3a9177c3ce022a5f7f8798aab360af004c6c1e4963d0e91fc005e54bc1e271" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.11.0-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-MacOSX-arm64.sh#d0a86d865d3881f26bc0e677a83b7fdff700536e654cd8490c8fdc1731f93f6c" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.11.0-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-MacOSX-x86_64.sh#9b385902da43fba025ba8a02e628057217fe75cace15af26add5748ab443abbb" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.12.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.12.0-0
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.12.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-Linux-aarch64.sh#44e0a9f7c32e855e82a24af4df9a65ecf35a12b6eede8822b24dcf2308289d40" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.12.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-Linux-ppc64le.sh#44de866d661a441f5e32605ce4708b3323f80348ccb5e0568e52a25a3de0d81e" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-Linux-x86_64.sh#6c6fd04d688ceb7e6b540bba059dd3a541d60602e9adece3abaf754d15c83484" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.12.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-MacOSX-arm64.sh#59d847b17148ebd27a4b31775d0047302cf9f8f8dae7db1e75bf037f0a823d48" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-MacOSX-x86_64.sh#2301f866fb239ce6cda3e741e00be22ff7aa5ff76ba5683509ebae58df917546" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.12.0-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.12.0-1
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.12.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-Linux-aarch64.sh#c6ee5819f700926485197c864ed1190e8ca9d436cf15b100ed8a35540f1c46ea" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.12.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-Linux-ppc64le.sh#87dc485c6c82592102b8704e0e59cf9ce2fef762c369011a3e132fa72549d730" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-Linux-x86_64.sh#10f7194e7356e46e41ddf6add800a2f175a801211ed62869ad8c0c301d493c34" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.12.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-MacOSX-arm64.sh#234504f4db1d04966218f0c1ad73418a15e7e9bdf714d166bc5e86b917291cc2" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-MacOSX-x86_64.sh#e68c3b8f94db17aae3b33f2bacb950c613c06b170507002d72231ff320b9ad7c" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.12.0-2
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.12.0-2
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.12.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-Linux-aarch64.sh#6b67bdd1552dfd6a2257c4c3da0ead19a4d34f68c16fb3e5b4bbc728b60cd200" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.12.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-Linux-ppc64le.sh#f8700febc99cbda9cbe9ff52364477ed6a04efdf15a0aa499d8ea8be4a58998c" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-Linux-x86_64.sh#8cb16ef82fe18d466850abb873c7966090b0fbdcf1e80842038e0b4e6d8f0b66" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.12.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-MacOSX-arm64.sh#2e2be9d976da31b62ab314881d3c6ed3f65c76e3ea69cc4b59fb344780109026" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-MacOSX-x86_64.sh#562c2bcbabff10387f130acea72b960454fa3d90b593126e4e4febcf6da763d3" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.12.0-3
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.12.0-3
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.12.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-Linux-aarch64.sh#379796ce7d0f6515093bdde06f45df1bd7261c4104f13f53a5cd30f9acba44d9" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.12.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-Linux-ppc64le.sh#ae6fb19467c147c77cf31b044aaae155109bc0e952965d98990fa8d2b2e7bfdd" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-Linux-x86_64.sh#93d481e4f12dce9f2ffe46904dc8cf88485c7b27fc4d18dd8e900e2c3ab83f80" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.12.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-MacOSX-arm64.sh#6c3b82eb0edce21b58d0bcafc9afbbc498e140a8229b70275afcdf9e17db47d1" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.12.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-MacOSX-x86_64.sh#17ecce907a048240970cc9a546369aed07bcd21f30116ad43249360dce69edcd" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.13.0-1
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.13.0-1
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.13.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-Linux-aarch64.sh#69e3c90092f61916da7add745474e15317ed0dc6d48bfe4e4c90f359ba141d23" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.13.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-Linux-ppc64le.sh#ff41608c73da7deb01f741682e9b6c92435f4b2aff2aecde353093d3125126cf" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.13.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-Linux-x86_64.sh#412b79330e90e49cf7e39a7b6f4752970fcdb8eb54b1a45cc91afe6777e8518c" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.13.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-MacOSX-arm64.sh#6263560d2b0902942841667721dad3621c05f704f6b080d968ad355aeca51486" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.13.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-MacOSX-x86_64.sh#bc42d606b67ace370847deb849e7d1ea2879b0be78bb1be51b020c3cb4e5bef2" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
25
plugins/python-build/share/python-build/mambaforge-4.14.0-0
Normal file
25
plugins/python-build/share/python-build/mambaforge-4.14.0-0
Normal file
@@ -0,0 +1,25 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-aarch64" )
|
||||
install_script "Mambaforge-4.14.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-aarch64.sh#37221b8d818951fab125c0bfb6cc6e83dac059f66892d2544a83192828d8e2c4" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-ppc64le" )
|
||||
install_script "Mambaforge-4.14.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-ppc64le.sh#607bbd38aa21af4c79a663f2a183a06cca054efdd8d617c17370522504c7be1e" "miniconda" verify_py310
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Mambaforge-4.14.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-x86_64.sh#d47b78b593e3cf5513bafbfa6a51eafcd9f0e164c41c79c790061bb583c82859" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-arm64" )
|
||||
install_script "Mambaforge-4.14.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-MacOSX-arm64.sh#35d05a65e19b8e5d596964936ddd6023ae66d664a25ba291a52fec18f06a73b6" "miniconda" verify_py310
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Mambaforge-4.14.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-MacOSX-x86_64.sh#949f046b4404cc8e081807b048050e6642d8db5520c20d5158a7ef721fbf76c5" "miniconda" verify_py310
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user