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

Compare commits

...

134 Commits

Author SHA1 Message Date
Anton Petrov
bb38acd994 v2.3.29 2023-10-06 08:05:47 +03:00
Anton Petrov
7d7e7e5b93 v2.3.29 2023-10-06 08:05:28 +03:00
Alex Hedges
928f69cf9a Install ncurses from Homebrew, if available (#2813)
XCode Command Line Tools 15.0 was recently released, and it contains a
broken version of ncurses 6.0. Some uses of Python's `curses` module
will segfault when compiled with it. The solution is to switch to using
the version of ncurses from Homebrew, which is currently 6.4. Support
for ncurses 6 was added to Python 3.7 and was backported to 3.6 and 2.7,
so this change should not break any recently supported Python versions.

Tested with Python 3.12, 3.11, and 2.7, and all tests in
the `test.test_curses` module pass without issue.

See https://github.com/python/cpython/issues/109617 and
https://github.com/python/cpython/issues/69906 for more information.
2023-10-06 06:59:29 +03:00
Anton Petrov
44c8f061af Merge pull request #2812 from eregon/graalpy-gftc-23.1.0
Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution
2023-10-05 19:19:41 +03:00
Benoit Daloze
931a7d7c7f Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution
* Use the new Oracle GraalVM distribution to provide the best user experience,
  as it significantly faster than GraalVM CE and is free for development and production use:
  https://medium.com/graalvm/whats-new-in-graalvm-languages-161527df3d76
2023-10-05 12:16:37 +02:00
Anton Petrov
0ada42d89d Merge pull request #2806 from coatl-dev/cpython-3.11.6
Add CPython 3.11.6
2023-10-03 14:29:43 +03:00
César Román
7fbec9a971 Add CPython 3.11.6 2023-10-02 14:10:51 -07:00
Anton Petrov
28e7000b48 v2.3.28 2023-10-02 19:54:39 +03:00
Anton Petrov
a19d613877 Update CHANGELOG.md 2023-10-02 19:54:11 +03:00
Anton Petrov
3edc31eb3d v2.3.28 2023-10-02 19:53:49 +03:00
Anton Petrov
c9477dfd21 Merge pull request #2804 from edgarrmondragon/cpython-3.12.0
Add CPython 3.12.0
2023-10-02 19:50:27 +03:00
Edgar Ramírez Mondragón
3fda63be30 Add CPython 3.12.0 2023-10-02 08:54:31 -06:00
László Papp
f7f096503a Update the OpenSSL dependency for Python 2.7.18 to 1.1 (#2797)
It seems that pyenv cannot install 2.7.18 on Mac M1 (Apple ARM).

openssl 1.0.2 does not have ARM support. M1 support was added in 1.1.1i according to
https://www.openssl.org/news/cl111.txt
2023-09-23 19:47:15 +03:00
Michael Šimáček
8b0c743f12 Add graalpy-23.1.0 (#2796) 2023-09-19 20:48:31 +03:00
Saaket Prakash
bed2ec2f73 Add CPython 3.12.0rc3 (#2795) 2023-09-19 18:01:10 +03:00
Edgar Ramírez Mondragón
a82598e174 Prefer OpenSSL 3 in Homebrew in 3.13-dev (#2793) 2023-09-19 07:53:45 +03:00
native-api
d2c4d963d2 Prioritize 'zlib from xcode sdk' flag correctly (#2791)
All include directories should go into CPPFLAGS.
XCode SDK was being added to CFLAGS instead
which caused old Tcl/Tk in the SDK to override a newer one in Homebrew.
2023-09-18 00:46:59 +03:00
Anton Petrov
c844b332ca v2.3.27 2023-09-17 10:48:10 +03:00
Anton Petrov
64af7c3e54 v2.3.27 2023-09-17 10:47:49 +03:00
Anton Petrov
261fd7c462 Merge pull request #2789 from zsol/patch-1
Update openssl url for 3.12.0rc2
2023-09-17 10:43:27 +03:00
Zsolt Dollenstein
91928bfbc4 Update openssl url for 3.12.0rc2
The old 3.1.1s URL returns a 404
2023-09-16 03:48:52 -07:00
Timothy Pansino
8cfc75604b Fix get-pip urls for older pypy versions (#2788) 2023-09-16 11:02:21 +03:00
native-api
da3ac7b7a3 Prefer OpenSSL 3 in Homebrew since 3.12 (#2781) 2023-09-07 22:11:04 +03:00
Ivan Pozdeev
259b5cad26 Remove 3.7 from CI
3.7 is EOL since 2023-06-27
https://peps.python.org/pep-0537/
2023-09-07 22:03:00 +03:00
Anton Petrov
bdfb80cc12 v2.3.26 2023-09-07 11:36:40 +03:00
Anton Petrov
abfa56e31d v2.3.26 2023-09-07 11:36:22 +03:00
Edgar Ramírez Mondragón
1dbb100933 Add CPython 3.12.0rc2 (#2778) 2023-09-07 01:14:28 +03:00
native-api
9100243866 Merge pull request #2764 from xaocon/pip-fix
use -I with ensurepip
2023-08-30 21:16:25 +03:00
Anton Petrov
18ed727eb0 Merge pull request #2769 from xzmeng/fix-a-typo
fix a typo in README.md
2023-08-29 11:50:54 +03:00
Meng Xiangzhuo
3ba8df29e5 fix a typo in README.md 2023-08-29 16:45:11 +08:00
Alex Hedges
e1b7e1b519 Fix "grep: warning: stray \ before -" in conda.bash (#2768)
According to the POSIX spec, an unescaped backslash not followed by
an escapable character is undefined behavior,
and it has become an error in GNU grep 3.8 (2022-09-02).
2023-08-28 23:57:04 +03:00
Ivan Pozdeev
2cbba05966 gitignore the bulid directory for tests 2023-08-27 20:27:48 +03:00
Evan Pitstick
6be6231444 Use -I with ensurepip
The -s flag assures that nothing can be installed to user site-packages
but doesn't keep ensurepip from looking there for Pip.
If Pip is installed in the user site-packages directory, pip won't be installed
for the newly built python -- and its shim won't be created.
-I makes the build install Pip in any case.
The user site-packages installation will override it --
but we'll have the shim at least.
2023-08-27 20:27:47 +03:00
Anton Petrov
7ec5c30451 Update pyenv---version 2023-08-27 01:29:50 -07:00
Anton Petrov
14cf54fb1c Update CHANGELOG.md 2023-08-27 01:29:26 -07:00
Anton Petrov
6e79eb0b7c Merge pull request #2763 from edgarrmondragon/cpython-3.10.13
Add CPython 3.8.18, 3.9.18, 3.10.13, 3.11.5
2023-08-25 08:47:19 +03:00
Edgar Ramírez Mondragón
a8075debe5 Add CPython 3.8.18 2023-08-24 14:56:43 -06:00
Edgar Ramírez Mondragón
552827d3f9 Add CPython 3.9.18 2023-08-24 14:06:46 -06:00
Edgar Ramírez Mondragón
035c9336d2 Add CPython 3.11.5 2023-08-24 12:16:47 -06:00
Edgar Ramírez Mondragón
c85ca6ce60 Add CPython 3.10.13 2023-08-24 08:51:13 -06:00
Anton Petrov
79a501139f 2.3.24 2023-08-11 02:21:21 -07:00
Anton Petrov
791ae90aef 2.3.24 2023-08-11 02:20:36 -07:00
Anton Petrov
db871427c7 Add an updated Anaconda and Miniconda installer scripts 2023-08-11 12:00:12 +03:00
Anton Petrov
4c5eac68c5 Merge pull request #2752 from edgarrmondragon/cpython-3.12.0rc1
Add CPython 3.12.0rc1
2023-08-06 22:00:47 -07:00
Edgar Ramírez Mondragón
d4ff57d0ce Add CPython 3.12.0rc1 2023-08-06 11:37:43 -06:00
native-api
ac5efed3a8 Fix FreeBSD tests in MacOS CI (#2748)
Guthub have recently preinstalled x64 Homebrew OpenSSL to stock MacOS runners. This has caused FreeBSD OpenSSL detection logic to erroneously trigger when running FreeBSD tests in MacOS because their paths happened to coincide.

Replaced checking a specific path with checking with pkg.
2023-07-28 15:23:39 +03:00
VictorieeMan
8aabba9485 README: Add explicit UNIX reference into the relevant installation sections (#2744)
Co-authored-by: Ivan Pozdeev <vano@mail.mipt.ru>
2023-07-23 22:29:17 +03:00
Anton Petrov
879fa68b35 v2.3.23 2023-07-22 16:09:30 +03:00
Anton Petrov
e908606554 v2.3.23 2023-07-22 16:08:35 +03:00
native-api
b81204c08b Merge pull request #2742 from aphedges/update-miniconda-2023-07-11
Add new anaconda and miniconda definitions
2023-07-12 20:48:50 +03:00
Alex Hedges
37cc45a831 Update anaconda and miniconda with add_miniconda.py
This adds anaconda 2023.03, anaconda 2023.07, miniconda 23.3.1, and
miniconda 23.5.0.
2023-07-11 17:42:00 -04:00
Alex Hedges
3f6bc8d16a Support miniconda with Python 3.11 2023-07-11 17:36:41 -04:00
Alex Hedges
dd5378941a Fix miniconda version handling
Anaconda and miniconda have changed their version string format again,
so the parsing needs to be done differently. `add_miniconda.py` can now
parse all existing definition files properly.
2023-07-11 17:30:10 -04:00
Alex Hedges
2506c9773c Log errors when parsing existing Conda versions
This makes it easier to fix file names that cannot be parsed using the
current logic.
2023-07-11 17:30:10 -04:00
Edgar R. M
51166377b7 Add CPython 3.12.0b4 (#2741) 2023-07-11 21:50:06 +03:00
Anton Petrov
af1a54482b Update CHANGELOG.md 2023-07-08 22:38:47 +03:00
Anton Petrov
64c70feb08 Update pyenv---version 2023-07-08 22:37:24 +03:00
Anton Petrov
7b713a88c4 Merge pull request #2739 from filips123/add-cinder-3.10
Add Cinder 3.10 and Cinder configure patches
2023-07-02 10:16:59 +03:00
Filip Š
1874f95a0e Update Cinder errors and warnings 2023-07-01 19:34:12 +02:00
Filip Š
1a882c6053 Add Cinder configure patches 2023-06-28 14:02:51 +02:00
Filip Š
05dcd45741 Add Cinder 3.10 2023-06-28 10:29:55 +02:00
Anton Petrov
a2dff4809b Merge pull request #2730 from edgarrmondragon/cpython-3.12.0b3
Add CPython 3.12.0b3
2023-06-21 07:47:36 +03:00
Edgar Ramírez Mondragón
ad0d131032 Add CPython 3.12.0b3 2023-06-20 07:46:41 -06:00
Anton Petrov
7c17c741eb 2.3.21 2023-06-20 13:52:59 +03:00
Anton Petrov
ba8b58f90d 2.3.21 2023-06-20 13:52:17 +03:00
native-api
fe76b05445 Fix occasional 'libexec/pyenv-latest: line 39: printf: write error: Broken pipe' (#2729) 2023-06-20 03:04:06 +03:00
Anton Petrov
c5d2639082 Merge pull request #2726 from edgarrmondragon/pypy-7.3.12
Add PyPy 7.3.12
2023-06-18 09:35:15 +03:00
Edgar Ramírez Mondragón
d4bd7bbe2b Add PyPy 7.3.12 2023-06-17 22:46:05 -06:00
Anton Petrov
38ac747239 Merge pull request #2724 from msimacek/master
Add graalpy-23.0.0
2023-06-14 09:41:42 +03:00
Michael Simacek
8f655d2ca6 Add graalpy-23.0.0 2023-06-13 17:13:00 +02:00
Ivan Pozdeev
d0b78fd5fe CONTRIBUTING.md: clearer phrasing 2023-06-12 15:34:45 +03:00
Anton Petrov
43f40eca05 v2.3.20 2023-06-12 10:33:36 +03:00
Alex Tomkins
687944d991 Add missing patches for Python 3.7/3.8/3.9 (#2718)
* Use OpenSSL 1.1.1u and remove patches for 1.1.1q
2023-06-11 00:09:42 +03:00
native-api
0f337a6c9a Merge pull request #2717 from native-api/backport_42351_3.5.10
Backport bpo-42351 to 3.5.10
2023-06-10 20:49:31 +03:00
Ivan Pozdeev
afe2615a1c 3.5.10: Backport bpo-42351
The bug is reported to manifest in Mandjaro Linux 6.3.5-2
2023-06-10 20:33:01 +03:00
Ivan Pozdeev
d7d5ab5148 3.5.10: Fix patches to apply cleanly 2023-06-10 20:31:57 +03:00
Anton Petrov
e79dd97afa v2.3.19 2023-06-08 12:18:16 +03:00
Anton Petrov
021b6c2da0 v2.3.19 2023-06-08 12:17:52 +03:00
Anton Petrov
e008430451 Merge pull request #2713 from edgarrmondragon/cpython-3.12.0b2
Add CPython 3.12.0b2
2023-06-07 14:47:56 +03:00
Anton Petrov
09fc5b8824 Merge pull request #2714 from edgarrmondragon/cpython-3.10.12
Add CPython 3.10.12
2023-06-07 14:47:10 +03:00
Anton Petrov
6eeda1f87e Merge pull request #2715 from edgarrmondragon/cpython-3.11.4
Add CPython 3.11.4
2023-06-07 14:46:34 +03:00
Edgar Ramírez Mondragón
452647ab33 Add CPython 3.11.4 2023-06-07 01:12:47 -06:00
Edgar Ramírez Mondragón
4086e452fd Add CPython 3.10.12 2023-06-06 18:26:24 -06:00
Edgar Ramírez Mondragón
82c8d511c4 Add CPython 3.12.0b2 2023-06-06 14:39:15 -06:00
native-api
578c7507c6 Merge pull request #2711 from edgarrmondragon/cpython-3.9.17
Add CPython 3.7.17, 3.8.17 and 3.9.17
2023-06-06 20:04:06 +03:00
Edgar Ramírez Mondragón
23c727a767 Add CPython 3.7.17 and CPython 3.8.17 2023-06-06 10:39:56 -06:00
Edgar Ramírez Mondragón
fb73c4b714 Add CPython 3.9.17 2023-06-06 09:19:19 -06:00
Anton Petrov
3fa5812bfc Update pyenv---version 2023-05-25 11:23:39 +03:00
Anton Petrov
c8a23e26e6 Update CHANGELOG.md 2023-05-25 11:23:18 +03:00
t0b3
def5cd994e Update 3.12-dev and add 3.13-dev (#2703) 2023-05-25 09:47:37 +03:00
Edgar R. M
b5576240a2 Add CPython 3.12.0b1 (#2701) 2023-05-23 23:07:48 +03:00
Kevin Schoedel
920ef1456a Support ksh alternative names (#2697)
* Support ksh versions

Korn shell had two major versions: ’88 and ’93. Some systems have
ksh installed under the name `ksh93`. A few systems (maybe only
Solaris now) also have a `ksh88`. A few others use the `pdksh` (’88)
or `mksh` (’93) implementations, originated before ksh was open source.

Limit to currently-used versions

---------

Co-authored-by: Kevin Schoedel <kps@datatravelandexperiments.com>
2023-05-13 01:24:57 +03:00
Anton Petrov
528d10e96f Merge pull request #2691 from aviadhahami/master
fix: updating heredoc delimiter to be random and unique
2023-04-30 08:16:28 +03:00
Aviad Hahami
cf9d0dcd7b fix: updating heredoc delimiter to be random and unique 2023-04-30 00:56:43 +03:00
Anton Petrov
aa5fd27e2f Merge pull request #2687 from tomschr/bug2682-fix-manpage
Fix #2682: Correct pyenv_user_setup.bash file
2023-04-25 07:39:39 +03:00
Tom Schraitle
73b6307399 Fix #2682: Correct pyenv_user_setup.bash file
The manpage contains a reference to a file which does
only exist on Debian (/usr/share/pyenv/pyenv_user_setup.bash).

It is replaced by its content to make it usable for
other distributions.
2023-04-24 13:56:01 +02:00
Ivan Pozdeev
a57e0b5019 README: move troubleshooting note higher 2023-04-16 20:11:08 +03:00
Anton Petrov
b3c91b37d6 Merge pull request #2677 from mirekdlugosz/fix-31011-3113-tarxz
Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3
2023-04-11 11:00:40 +03:00
Mirek Długosz
777089466d Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3 2023-04-11 09:15:16 +02:00
native-api
20189ff06f Fix not showing symlink contents for unselected versions in pyenv versions (#2675) 2023-04-08 01:12:09 +03:00
Ivan Pozdeev
5a8dbcf143 Document using and writing plugins 2023-04-07 19:07:35 +03:00
Anton Petrov
9a4f9c2511 2.3.17 2023-04-06 06:58:52 +03:00
Anton Petrov
bee178a95d 2.3.17 2023-04-06 06:58:33 +03:00
Anton Petrov
0f75cd8800 Merge pull request #2670 from mirekdlugosz/cpython-3.10.11
Add CPython 3.10.11
2023-04-05 18:28:35 +03:00
Anton Petrov
29c4f279a3 Merge pull request #2671 from mirekdlugosz/cpython-3.11.3
Add CPython 3.11.3
2023-04-05 18:07:59 +03:00
Mirek Długosz
be4939604e Add CPython 3.11.3 2023-04-05 15:52:01 +02:00
Mirek Długosz
fc616a0aee Add CPython 3.10.11 2023-04-05 15:51:13 +02:00
Edgar R. M
b613a4abeb Add CPython 3.12.0a7 (#2668) 2023-04-05 05:56:24 +03:00
Shengqi Chen
b1ee6c93c4 Try locate readlink first in pyenv-hooks, fix #2654 (#2655)
* Remove all use of `greadlink`, fix #2654

Signed-off-by: Harry Chen <i@harrychen.xyz>

* revert greadlink back in tests

---------

Signed-off-by: Harry Chen <i@harrychen.xyz>
Co-authored-by: Anton Petrov <anton.a.petrov@gmail.com>
2023-03-28 11:25:27 +03:00
Petrov
9fad1f46c5 Update pyenv---version 2023-03-24 08:26:20 +03:00
Petrov
f51d3dcb47 Update CHANGELOG.md 2023-03-24 08:26:05 +03:00
Petrov
deb4935187 Merge pull request #2648 from anton-petrov/master
Add Anaconda3-2023.03
2023-03-23 14:38:52 +03:00
Petrov
e28d747b83 set hashes to sha-256 2023-03-23 13:41:02 +03:00
Petrov
ddd37eb823 Add hashes 2023-03-23 13:35:50 +03:00
Petrov
be2bd5f03d Create anaconda3-2023.03 2023-03-19 08:14:59 +03:00
Justin Lecher
4ef81b5c7a Add Miniforge3-22.11.1-4 (#2642) 2023-03-10 19:38:06 +03:00
Anton Petrov
6bb75b3ba7 Update CHANGELOG.md 2023-03-10 09:04:21 +03:00
Anton Petrov
f507d08064 Update pyenv---version 2023-03-10 09:03:23 +03:00
Saaket Prakash
ad15c75e0e Add CPython 3.12.0a6 (#2638) 2023-03-08 08:32:18 +03:00
Ivan Pozdeev
6052caa038 README: extended support for 3.5.10 2023-03-02 11:27:23 +03:00
Ivan Pozdeev
e8a4b54231 CI: ubuntu-build: Fix 404s on apt install 2023-03-02 11:24:05 +03:00
Alex Hedges
bcbdadf10d Add miniconda 23.1.0-1 (#2635) 2023-03-02 06:49:44 +03:00
Anton Petrov
904dd5f828 Update pyenv---version 2023-03-01 08:25:31 +03:00
Anton Petrov
3226a1870b Update CHANGELOG.md 2023-03-01 08:25:12 +03:00
Anton Petrov
0d19efecf5 Merge pull request #2634 from mrienstra/patch-1
README: clarify behavior of `pyenv latest`
2023-02-28 09:30:48 +03:00
Michael Rienstra
ecab7b0d17 README: clarify behavior of pyenv latest 2023-02-27 16:26:18 -08:00
Chaim Halbert
3bfc97ad29 bpo-36231 for v3.5.10: fix Unsupported MacOS X CPU type in ffi.h (#2633) 2023-02-26 18:36:51 +03:00
native-api
276ce32643 Merge pull request #2630 from chaimleib/fix-bpo-27987-on-eol-pythons
bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms
2023-02-26 16:05:39 +03:00
Chaim Halbert
b30508f9b8 bpo-41100 for v3.5.10: fix implicit declaration of function sendfile 2023-02-26 05:51:20 -07:00
Chaim Halbert
0e80d0725b v3.5.10 on macOS13: fix unexpected output of arch on OSX 2023-02-26 05:21:03 -07:00
Chaim Halbert
6bec7a50fe bpo-45405 for v3.5.10: Prevent internal configure error when running configure with recent versions of clang. (GH-28845) (GH-31890) 2023-02-24 13:16:52 -07:00
Chaim Halbert
28be65992d bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms 2023-02-24 12:19:13 -07:00
Florian Schüller
68918e69b7 Support for BusyBox version of `head' (#2629) 2023-02-22 20:11:48 +03:00
Rafał
86a4423bbb Fix indentation (#2620) 2023-02-16 00:10:36 +03:00
94 changed files with 2860 additions and 149 deletions

View File

@@ -10,7 +10,6 @@ jobs:
fail-fast: false
matrix:
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"

View File

@@ -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::"

View File

@@ -10,7 +10,6 @@ jobs:
fail-fast: false
matrix:
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
@@ -24,7 +23,7 @@ jobs:
# python-version: ${{ matrix.python-version }}
# ... but in the repo, we want to test pyenv builds on Ubuntu
- run: |
sudo apt-get install -yq make build-essential libssl-dev zlib1g-dev \
sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# https://github.com/pyenv/pyenv#installation

View File

@@ -1,5 +1,107 @@
# Version History
## Release v2.3.29
* Add CPython 3.11.6 by @thecesrom in https://github.com/pyenv/pyenv/pull/2806
* Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution by @eregon in https://github.com/pyenv/pyenv/pull/2812
* Install ncurses from Homebrew, if available by @aphedges in https://github.com/pyenv/pyenv/pull/2813
## Release v2.3.28
* Prioritize 'zlib from xcode sdk' flag correctly by @native-api in https://github.com/pyenv/pyenv/pull/2791
* Prefer OpenSSL 3 in Homebrew in 3.13-dev by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2793
* Add CPython 3.12.0rc3 by @saaketp in https://github.com/pyenv/pyenv/pull/2795
* Add graalpy-23.1.0 and split between graalpy and graalpy-community by @msimacek in https://github.com/pyenv/pyenv/pull/2796
* Update the OpenSSL dependency for Python 2.7.18 by @lpapp-foundry in https://github.com/pyenv/pyenv/pull/2797
* Add CPython 3.12.0 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2804
## Release v2.3.27
* Prefer OpenSSL 3 in Homebrew since 3.12 by @native-api in https://github.com/pyenv/pyenv/pull/2781
* Fix get-pip urls for older pypy versions by @TimPansino in https://github.com/pyenv/pyenv/pull/2788
* Update openssl url for 3.12.0rc2 by @zsol in https://github.com/pyenv/pyenv/pull/2789
## Release v2.3.26
* Prevent `grep` warning in `conda.bash` by @aphedges in https://github.com/pyenv/pyenv/pull/2768
* fix a typo in README.md by @xzmeng in https://github.com/pyenv/pyenv/pull/2769
* use -I with ensurepip by @xaocon in https://github.com/pyenv/pyenv/pull/2764
* Add CPython 3.12.0rc2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2778
## Release v2.3.25
* Add CPython 3.8.18, 3.9.18, 3.10.13, 3.11.5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2763
## Release v2.3.24
* README update: Added UNIX reference near Automatic installer by @VictorieeMan in https://github.com/pyenv/pyenv/pull/2744
* Fix FreeBSD tests in MacOS CI by @native-api in https://github.com/pyenv/pyenv/pull/2748
* Add CPython 3.12.0rc1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2752
* [Add an updated Anaconda and Miniconda installers](https://github.com/pyenv/pyenv/commit/db871427c7a232e18ee7a6dc0182989a646ccca9)
## Release v2.3.23
* Add CPython 3.12.0b4 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2741
* Add new anaconda and miniconda definitions by @aphedges in https://github.com/pyenv/pyenv/pull/2742
## Release v2.3.22
* Add CPython 3.12.0b3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2730
* 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

View File

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

View File

@@ -44,10 +44,11 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
* [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations)
* **[Installation](#installation)**
* [Getting Pyenv](#getting-pyenv)
* [Homebrew in macOS](#homebrew-in-macos)
* [UNIX/MacOS](#unixmacos)
* [Homebrew in macOS](#homebrew-in-macos)
* [Automatic installer](#automatic-installer)
* [Basic GitHub Checkout](#basic-github-checkout)
* [Windows](#windows)
* [Automatic installer](#automatic-installer)
* [Basic GitHub Checkout](#basic-github-checkout)
* [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv)
* [Restart your shell](#restart-your-shell)
* [Install Python build dependencies](#install-python-build-dependencies)
@@ -62,6 +63,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
* [Upgrading with Homebrew](#upgrading-with-homebrew)
* [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout)
* [Uninstalling pyenv](#uninstalling-pyenv)
* [Pyenv plugins](#pyenv-plugins)
* [Advanced Configuration](#advanced-configuration)
* [Using Pyenv without shims](#using-pyenv-without-shims)
* [Environment variables](#environment-variables)
@@ -199,7 +201,8 @@ As far as Pyenv is concerned, version names are simply directories under
## Installation
### Getting Pyenv
#### Homebrew in macOS
#### UNIX/MacOS
##### Homebrew in macOS
1. Consider installing with [Homebrew](https://brew.sh):
```sh
@@ -233,19 +236,7 @@ As far as Pyenv is concerned, version names are simply directories under
~~~
#### Windows
Pyenv does not officially support Windows and does not work in Windows outside
the Windows Subsystem for Linux.
Moreover, even there, the Pythons it installs are not native Windows versions
but rather Linux versions running in a virtual machine --
so you won't get Windows-specific functionality.
If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork --
which does install native Windows Python versions.
#### Automatic installer
##### Automatic installer
`curl https://pyenv.run | bash`
@@ -253,7 +244,7 @@ For more details visit our other project:
https://github.com/pyenv/pyenv-installer
#### Basic GitHub Checkout
##### Basic GitHub Checkout
This will get you going with the latest version of Pyenv and make it
easy to fork and contribute any changes back upstream.
@@ -269,6 +260,18 @@ easy to fork and contribute any changes back upstream.
cd ~/.pyenv && src/configure && make -C src
```
#### Windows
Pyenv does not officially support Windows and does not work in Windows outside
the Windows Subsystem for Linux.
Moreover, even there, the Pythons it installs are not native Windows versions
but rather Linux versions running in a virtual machine --
so you won't get Windows-specific functionality.
If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork --
which does install native Windows Python versions.
### Set up your shell environment for Pyenv
**Upgrade note:** The startup logic and instructions have been updated for simplicity in 2.3.0.
@@ -401,22 +404,22 @@ You can pass options to Python's `configure` and compiler flags to customize the
see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables)
for details.
**NOTE:** If you'd like a faster interpreter at the cost of longer build times,
see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance).
**NOTE:** If you are having trouble installing a Python version,
please visit the wiki page about
[Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems).
**NOTE:** If you want to use proxy for download, please set the `http_proxy` and `https_proxy`
environment variables.
**NOTE:** If you are having trouble installing a Python version,
please visit the wiki page about
[Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems).
**NOTE:** If you'd like a faster interpreter at the cost of longer build times,
see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance).
#### Prefix auto-resolution to the latest version
All Pyenv subcommands except `uninstall` automatically resolve full prefixes to the latest version in the corresponding version line.
`pyenv install` picks the latest known version while other subcommands -- the latest installed version.
`pyenv install` picks the latest known version, while other subcommands pick the latest installed version.
E.g. to install and then switch to the latest 3.10 release:
@@ -425,8 +428,7 @@ pyenv install 3.10
pyenv global 3.10
```
You can run [`pyenv latest <prefix>`](COMMANDS.md#pyenv-latest) to see
what a specific prefix would be resolved to.
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.
@@ -439,7 +441,7 @@ it's safe to assume that they will continue working until there are further inco
in a later version of those environments.
* *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3
* *3.6.15* : MacOS 11+ and XCode 13.3
* *3.5.10, 3.6.15* : MacOS 11+ and XCode 13.3
* *2.7.18* : MacOS 10.15+ and Apple Silicon
@@ -568,6 +570,19 @@ uninstall from the system.
brew uninstall pyenv
```
## Pyenv plugins
Pyenv provides a simple, flexible and maintainable way to extend and customize its functionality with plugins --
as simple as creating a plugin directory and dropping a shell script on a certain subpath of it
with whatever extra logic you need to be run at certain moments.
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
@@ -660,7 +675,6 @@ for environment variables that can be used to customize the build.
----
## Development
The pyenv source code is [hosted on

View File

@@ -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() {

View File

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

View File

@@ -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

View File

@@ -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

View File

@@ -109,7 +109,12 @@ function detect_profile() {
profile='~/.zprofile'
rc='~/.zshrc'
;;
ksh )
ksh | ksh93 | mksh )
# There are two implementations of Korn shell: AT&T (ksh93) and Mir (mksh).
# Systems may have them installed under those names, or as ksh, so those
# are recognized here. The obsolete ksh88 (subsumed by ksh93) and pdksh
# (subsumed by mksh) are not included, since they are unlikely to still
# be in use as interactive shells anywhere.
profile='~/.profile'
rc='~/.profile'
;;
@@ -269,7 +274,7 @@ function pyenv
end
EOS
;;
ksh )
ksh | ksh93 | mksh )
cat <<EOS
function pyenv {
typeset command

View File

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

View File

@@ -34,7 +34,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th
exit 1
fi
READLINK=$(type -P greadlink readlink | head -1)
READLINK=$(type -P readlink)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
@@ -121,7 +121,7 @@ print_version() {
elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then
echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))"
else
echo "${miss_prefix}$1"
echo "${miss_prefix}${version_repr}"
fi
num_versions=$((num_versions + 1))
}
@@ -157,12 +157,12 @@ for path in "${versions_dir_entries[@]}"; do
print_version "${path##*/}" "$path"
# virtual environments created by anaconda/miniconda/pyenv-virtualenv
if [[ -z $skip_envs ]]; then
for env_path in "${path}/envs/"*; do
if [ -d "${env_path}" ]; then
print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}"
fi
done
fi
for env_path in "${path}/envs/"*; do
if [ -d "${env_path}" ]; then
print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}"
fi
done
fi
fi
done
shopt -u dotglob nullglob

View File

@@ -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

1
plugins/.gitignore vendored
View File

@@ -2,3 +2,4 @@
!/.gitignore
!/version-ext-compat
!/python-build
/python-build/test/build

View File

@@ -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() {

View File

@@ -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
}
@@ -256,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
@@ -798,6 +803,7 @@ build_package_standard_build() {
use_homebrew || true
use_tcltk || true
use_homebrew_readline || use_freebsd_pkg || true
use_homebrew_ncurses || true
if is_mac -ge 1014; then
use_xcode_sdk_zlib || use_homebrew_zlib || true
else
@@ -867,7 +873,7 @@ build_package_jython() {
fix_jython_shebangs() {
# Workaround for Jython 2.7+ (#458)
for file in "${PREFIX_PATH}/bin"/*; do
case "$(head -1 "${file}")" in
case "$(head -n1 "${file}")" in
"#!"*"/bin/jython" )
sed -i.bak "1 s:.*:#\!${PREFIX_PATH}\/bin\/jython:" "${file}"
;;
@@ -1144,7 +1150,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
@@ -1415,7 +1421,7 @@ use_freebsd_pkg() {
# check if FreeBSD
if [ "FreeBSD" = "$(uname -s)" ]; then
# use openssl if installed from Ports Collection
if [ -f /usr/local/include/openssl/ssl.h ]; then
if pkg info -e openssl; then
package_option python configure --with-openssl="/usr/local"
fi
@@ -1463,12 +1469,30 @@ use_homebrew_readline() {
fi
}
use_homebrew_ncurses() {
can_use_homebrew || return 1
local libdir="$(brew --prefix ncurses 2>/dev/null || true)"
if [ -d "$libdir" ]; then
echo "python-build: use ncurses from homebrew"
export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}"
export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}"
else
return 1
fi
}
prefer_openssl11() {
# Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326)
PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl}"
export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA
}
prefer_openssl3() {
# Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326)
PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@1.1 openssl}"
export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA
}
build_package_mac_readline() {
# Install to a subdirectory since we don't want shims for bin/readline.
READLINE_PREFIX_PATH="${PREFIX_PATH}/readline"
@@ -1587,7 +1611,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() {
@@ -1605,7 +1629,7 @@ use_xcode_sdk_zlib() {
local xc_sdk_path="$(xcrun --show-sdk-path 2>/dev/null || true)"
if [ -d "$xc_sdk_path" ]; then
echo "python-build: use zlib from xcode sdk"
export CFLAGS="${CFLAGS:+$CFLAGS }-I${xc_sdk_path}/usr/include"
export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${xc_sdk_path}/usr/include"
if is_mac -ge 1100; then
export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${xc_sdk_path}/usr/lib"
fi
@@ -1953,6 +1977,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
@@ -2015,7 +2044,7 @@ build_package_ensurepip() {
ensurepip_opts="--altinstall"
fi
# FIXME: `--altinstall` with `get-pip.py`
"$PYTHON_BIN" -s -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1
"$PYTHON_BIN" -I -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1
build_package_symlink_version_suffix
}
@@ -2321,7 +2350,7 @@ if [ -z "${GET_PIP_URL}" ]; then
2.6 | 2.6.* )
GET_PIP_URL="https://bootstrap.pypa.io/pip/2.6/get-pip.py"
;;
2.7 | 2.7.* )
2.7 | 2.7.* | pypy2.7 | pypy2.7-* )
GET_PIP_URL="https://bootstrap.pypa.io/pip/2.7/get-pip.py"
;;
3.2 | 3.2.* )
@@ -2333,10 +2362,10 @@ if [ -z "${GET_PIP_URL}" ]; then
3.4 | 3.4.* )
GET_PIP_URL="https://bootstrap.pypa.io/pip/3.4/get-pip.py"
;;
3.5 | 3.5.* )
3.5 | 3.5.* | pypy3.5 | pypy3.5-* )
GET_PIP_URL="https://bootstrap.pypa.io/pip/3.5/get-pip.py"
;;
3.6 | 3.6.* )
3.6 | 3.6.* | pypy3.6 | pypy3.6-* )
GET_PIP_URL="https://bootstrap.pypa.io/pip/3.6/get-pip.py"
;;
* )

View File

@@ -109,6 +109,7 @@ class PyVersion(StrEnum):
PY38 = "py38"
PY39 = "py39"
PY310 = "py310"
PY311 = "py311"
def version(self):
first, *others = self.value[2:]
@@ -150,20 +151,23 @@ class CondaVersion(NamedTuple):
"""
Convert a string of the form "miniconda_n-ver" or "miniconda_n-py_ver-ver" to a :class:`CondaVersion` object.
"""
components = s.split("-")
if len(components) == 3:
miniconda_n, py_ver, ver = components
py_ver = PyVersion(f"py{py_ver.replace('.', '')}")
else:
miniconda_n, ver = components
py_ver = None
miniconda_n, _, remainder = s.partition("-")
suffix = miniconda_n[-1]
if suffix in string.digits:
flavor = miniconda_n[:-1]
else:
flavor = miniconda_n
suffix = ""
components = remainder.split("-")
if flavor == Flavor.MINICONDA and len(components) >= 2:
py_ver, *ver_parts = components
py_ver = PyVersion(f"py{py_ver.replace('.', '')}")
ver = "-".join(ver_parts)
else:
ver = "-".join(components)
py_ver = None
return CondaVersion(Flavor(flavor), Suffix(suffix), VersionStr(ver), py_ver)
def to_filename(self):
@@ -289,7 +293,7 @@ def get_existing_condas(name):
logger.debug("Found existing %(name)s version %(v)s", locals())
yield v
except ValueError:
pass
logger.error("Unable to parse existing version %s", entry_name)
def get_available_condas(name, repo):

View File

@@ -1,5 +1,5 @@
export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="openssl@1.1 openssl@1.0 openssl"
install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" mac_openssl --if has_broken_mac_openssl
install_package "openssl-1.1.1v" "https://www.openssl.org/source/openssl-1.1.1v.tar.gz" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz#b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" standard verify_py27 copy_python_gdb ensurepip

View 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

View 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

View 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.13" "https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tar.xz#5c88848668640d3e152b35b4536ef1c23b2ca4bd2c957ef1ecbb053f571dd3f6" standard verify_py310 copy_python_gdb ensurepip
else
install_package "Python-3.10.13" "https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz#698ec55234c1363bd813b460ed53b0f108877c7a133d48bde9a50a1eb57b7e65" standard verify_py310 copy_python_gdb ensurepip
fi

View File

@@ -1,9 +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.12.0a5" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a5.tar.xz#d66ef7a342fe3a356f9cee3bb97adc1e5fb4840f6b6cff7de0ff7dd495f8323b" standard verify_py312 copy_python_gdb ensurepip
install_package "Python-3.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.12.0a5" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a5.tgz#53bea5094887bba2fc4f429fa8abb4976b5c7cfe70d41923cf6aff0b4854c666" standard verify_py312 copy_python_gdb ensurepip
install_package "Python-3.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

View 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

View 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.5" "https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz#85cd12e9cf1d6d5a45f17f7afe1cebe7ee628d3282281c492e86adf636defa3f" standard verify_py311 copy_python_gdb ensurepip
else
install_package "Python-3.11.5" "https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz#a12a0a013a30b846c786c010f2c19dd36b7298d888f7c4bd1581d90ce18b5e58" standard verify_py311 copy_python_gdb ensurepip
fi

View 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.6" "https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz#0fab78fa7f133f4f38210c6260d90d7c0d5c7198446419ce057ec7ac2e6f5f38" standard verify_py311 copy_python_gdb ensurepip
else
install_package "Python-3.11.6" "https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz#c049bf317e877cbf9fce8c3af902436774ecef5249a29d10984ca3a37f7f4736" standard verify_py311 copy_python_gdb ensurepip
fi

View File

@@ -1,7 +1,7 @@
prefer_openssl11
prefer_openssl3
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1
install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl
install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_git "Python-3.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

View File

@@ -0,0 +1,9 @@
prefer_openssl3
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2.tar.gz#3feb7171f16a84ee82ca18a36d7b9be109a52c04f492a053331d7d1095007c35" mac_readline --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.12.0" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz#795c34f44df45a0e9b9710c8c71c15c671871524cd412ca14def212e8ccb155d" standard verify_py312 copy_python_gdb ensurepip
else
install_package "Python-3.12.0" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz#51412956d24a1ef7c97f1cb5f70e185c13e3de1f50d131c0aac6338080687afb" standard verify_py312 copy_python_gdb ensurepip
fi

View File

@@ -0,0 +1,7 @@
prefer_openssl3
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1
export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1
install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" mac_openssl --if has_broken_mac_openssl
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
install_git "Python-3.13-dev" "https://github.com/python/cpython" main standard verify_py313 copy_python_gdb ensurepip

View 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

View 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

View 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.18" "https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tar.xz#3ffb71cd349a326ba7b2fadc7e7df86ba577dd9c4917e52a8401adbda7405e3f" standard verify_py38 copy_python_gdb ensurepip
else
install_package "Python-3.8.18" "https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz#7c5df68bab1be81a52dea0cc2e2705ea00553b67107a301188383d7b57320b16" standard verify_py38 copy_python_gdb ensurepip
fi

View 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

View 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.18" "https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tar.xz#01597db0132c1cf7b331eff68ae09b5a235a3c3caa9c944c29cac7d1c4c4c00a" standard verify_py39 copy_python_gdb ensurepip
else
install_package "Python-3.9.18" "https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz#504ce8cfd59addc04c22f590377c6be454ae7406cb1ebf6f5a350149225a9354" standard verify_py39 copy_python_gdb ensurepip
fi

View 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

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Anaconda3-2023.03-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-aarch64.sh#613797154d9383355677f7dfee10db32b2c327cbedabddcb303598f242c79883" "anaconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Anaconda3-2023.03-0-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-ppc64le.sh#eafeaccca96f60ebb0aa0052d9baac8eaa2ee422358ee35b12f60f37e8a3ebb2" "anaconda" verify_py39
;;
"Linux-s390x" )
install_script "Anaconda3-2023.03-0-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-s390x.sh#2648337081c3ce4b760457c5f00fb768ecd7d1d0957051ef5252ab380bb78233" "anaconda" verify_py39
;;
"Linux-x86_64" )
install_script "Anaconda3-2023.03-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-x86_64.sh#19737d5c27b23a1d8740c5cb2414bf6253184ce745d0a912bb235a212a15e075" "anaconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Anaconda3-2023.03-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-MacOSX-arm64.sh#d27ee5432438972e90548e3dfa89490c5dc38a723f4dcd53061f0bd9d53b1bd0" "anaconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Anaconda3-2023.03-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-MacOSX-x86_64.sh#cc37b1eb85bdc2ade3f95201a746cdc63ee4fbfae48ee9d0c7a3cf319562452d" "anaconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Anaconda3-2023.03-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-aarch64.sh#54e600faa2af63a25717af30ecaddf1ee428cdfebd3721a70f41462e232e8153" "anaconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Anaconda3-2023.03-1-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-ppc64le.sh#a31f2d6da83534cff7c994403cc11fa634b31fcd10eb4153d00233345ee084b2" "anaconda" verify_py39
;;
"Linux-s390x" )
install_script "Anaconda3-2023.03-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-s390x.sh#5af1406c6350b4ba6839c49faa32a3c90f2b9845a03c35843f118dd9dd013421" "anaconda" verify_py39
;;
"Linux-x86_64" )
install_script "Anaconda3-2023.03-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh#95102d7c732411f1458a20bdf47e4c1b0b6c8a21a2edfe4052ca370aaae57bab" "anaconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Anaconda3-2023.03-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-MacOSX-arm64.sh#85152324c423fedbeed2e7491cb32e597eaeb1b86ae7a61ff7597b401fd053ce" "anaconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Anaconda3-2023.03-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-MacOSX-x86_64.sh#3593921c8a5516db82f0d7dd1c691f7ee7794236852e7da614e9ad6e93eeb342" "anaconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Anaconda3-2023.07-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-aarch64.sh#5f4865448c1111fb80cb49abff0f9b38b2970857dba7a4627c499ba102b82af5" "anaconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Anaconda3-2023.07-0-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-ppc64le.sh#98efb73758680b84f890d818b5748d7a08e82c4b825d597f7e3c4467125da278" "anaconda" verify_py39
;;
"Linux-s390x" )
install_script "Anaconda3-2023.07-0-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-s390x.sh#f6933a8b70d346d423e089843fc151c46bdaee4e3e4e4fd0fb81ca06b8766892" "anaconda" verify_py39
;;
"Linux-x86_64" )
install_script "Anaconda3-2023.07-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-x86_64.sh#ac738639aba0b676a618911600d0a0e7825ee7fd10efb6b3d95cc2e570d9ee7b" "anaconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Anaconda3-2023.07-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-MacOSX-arm64.sh#23a9deb80acb145c65375bd73cbaa8793be81447278c4db7be50ef7c32a58635" "anaconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Anaconda3-2023.07-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-MacOSX-x86_64.sh#b6ea24fe16544d5b2d5adf6c913c1fc89a6dbdef12a4caff76ff574b33d0f3cb" "anaconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Anaconda3-2023.07-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-aarch64.sh#2ebe549375f3f5ffec9558a8a8405ebd697e69c8133b8f9c1c5cd4ff69d1cc74" "anaconda" verify_py311
;;
"Linux-ppc64le" )
install_script "Anaconda3-2023.07-1-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-ppc64le.sh#ee149f55ebdd3f15fc1db4e9cddb5126da62e7a193fa15026c9fa009a2575d0a" "anaconda" verify_py311
;;
"Linux-s390x" )
install_script "Anaconda3-2023.07-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-s390x.sh#49aad1bc077334f30177443c234f3c982f1c9751fc78c4c29fb4cf736e4f61ef" "anaconda" verify_py311
;;
"Linux-x86_64" )
install_script "Anaconda3-2023.07-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-x86_64.sh#111ce0a7f26e606863008a9519fd608b1493e483b6f487aea71d82b13fe0967e" "anaconda" verify_py311
;;
"MacOSX-arm64" )
install_script "Anaconda3-2023.07-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-MacOSX-arm64.sh#322045ad100dcc380decde5812db58c617901c6a8ac46dd7818080fe3ae19f8e" "anaconda" verify_py311
;;
"MacOSX-x86_64" )
install_script "Anaconda3-2023.07-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-MacOSX-x86_64.sh#803b2d0c5a142af3de14b410517c2c8889eaceb1b784d4c121512ebda13af6f8" "anaconda" verify_py311
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Anaconda3-2023.07-2-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-aarch64.sh#75967bc2113d9e336e670e1e557c9198d8b98e59fb9adb82cbe0e71ce5f7c2db" "anaconda" verify_py311
;;
"Linux-ppc64le" )
install_script "Anaconda3-2023.07-2-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-ppc64le.sh#7a72e301fb3b8e175a96b6457fc84654dd2eb98942528d9988760779b92847e4" "anaconda" verify_py311
;;
"Linux-s390x" )
install_script "Anaconda3-2023.07-2-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-s390x.sh#121743a62210249dd9fb9d6527d545d08f6bf6d2624d51ad4b5d168cb3e860d6" "anaconda" verify_py311
;;
"Linux-x86_64" )
install_script "Anaconda3-2023.07-2-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh#589fb34fe73bc303379abbceba50f3131254e85ce4e7cd819ba4276ba29cad16" "anaconda" verify_py311
;;
"MacOSX-arm64" )
install_script "Anaconda3-2023.07-2-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-MacOSX-arm64.sh#8b08ca8a94dd5fda20d134fea13fa6c55c70d20d4b5a7a1c80d311aeb0cd7a88" "anaconda" verify_py311
;;
"MacOSX-x86_64" )
install_script "Anaconda3-2023.07-2-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-MacOSX-x86_64.sh#a2f7d0c19f60d00742154db21bfb3976d82215ff58396353f4dc729828bd2f49" "anaconda" verify_py311
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View 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

View File

@@ -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

View File

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

View File

@@ -0,0 +1,63 @@
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
# of the Software, and to permit persons to whom the Software is furnished to do
# so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
VERSION='23.1.0'
BUILD=''
colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo
colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo
colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-23.1.0" && echo
graalpy_arch="$(graalpy_architecture 2>/dev/null || true)"
case "$graalpy_arch" in
"linux-amd64" )
checksum="afbb81f034e77aecf4717fe14f2a7403aa1b82f0abf53a2e55e46bd49efe8c39"
;;
"linux-aarch64" )
checksum="be1e21ea245ddbdb9c266e670d6f1e76a55c693f98cee44aa74a76b249e53f96"
;;
"macos-amd64" )
checksum="6445537c597567ccf5ae37d296ecd988a92149fb4a1fb57088811e75f19c6da4"
;;
"macos-aarch64" )
checksum="f1b9b22cd8c0afb7eabd59fad554c23f452fbafcdffccf8a22eca037199d62ae"
;;
* )
{ echo
colorize 1 "ERROR"
echo ": No binary distribution of GraalPy is available for $(uname -sm)."
echo
} >&2
exit 1
;;
esac
if [ -n "${BUILD}" ]; then
{ echo
colorize 1 "ERROR"
echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots."
echo
} >&2
exit 1
fi
url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}"
install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip

View File

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

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py310_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-aarch64.sh#80d6c306b015e1e3b01ea59dc66c676a81fa30279bc2da1f180a7ef7b2191d6e" "miniconda" verify_py310
;;
"Linux-ppc64le" )
install_script "Miniconda3-py310_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-ppc64le.sh#9ca8077a0af8845fc574a120ef8d68690d7a9862d354a2a4468de5d2196f406c" "miniconda" verify_py310
;;
"Linux-s390x" )
install_script "Miniconda3-py310_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-s390x.sh#0d00a9d34c5fd17d116bf4e7c893b7441a67c7a25416ede90289d87216104a97" "miniconda" verify_py310
;;
"Linux-x86_64" )
install_script "Miniconda3-py310_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh#32d73e1bc33fda089d7cd9ef4c1be542616bd8e437d1f77afeeaf7afdb019787" "miniconda" verify_py310
;;
"MacOSX-arm64" )
install_script "Miniconda3-py310_23.1.0-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-MacOSX-arm64.sh#cc5bcf95d5db0f7f454b2d800d52da8b70563f8454d529e7ac2da9725650eb27" "miniconda" verify_py310
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py310_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-MacOSX-x86_64.sh#bfb81814e16eb450b1dbde7b4ecb9ebc5186834cb4ede5926c699762ca69953b" "miniconda" verify_py310
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py310_23.3.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-aarch64.sh#6950c7b1f4f65ce9b87ee1a2d684837771ae7b2e6044e0da9e915d1dee6c924c" "miniconda" verify_py310
;;
"Linux-ppc64le" )
install_script "Miniconda3-py310_23.3.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-ppc64le.sh#b3de538cd542bc4f5a2f2d2a79386288d6e04f0e1459755f3cefe64763e51d16" "miniconda" verify_py310
;;
"Linux-s390x" )
install_script "Miniconda3-py310_23.3.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-s390x.sh#ed4f51afc967e921ff5721151f567a4c43c4288ac93ec2393c6238b8c4891de8" "miniconda" verify_py310
;;
"Linux-x86_64" )
install_script "Miniconda3-py310_23.3.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh#aef279d6baea7f67940f16aad17ebe5f6aac97487c7c03466ff01f4819e5a651" "miniconda" verify_py310
;;
"MacOSX-arm64" )
install_script "Miniconda3-py310_23.3.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-arm64.sh#9d1d12573339c49050b0d5a840af0ff6c32d33c3de1b3db478c01878eb003d64" "miniconda" verify_py310
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py310_23.3.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-x86_64.sh#5abc78b664b7da9d14ade330534cc98283bb838c6b10ad9cfd8b9cc4153f8104" "miniconda" verify_py310
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py310_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-aarch64.sh#a632110a9ebddd8528b26241663ee9368d218e36b40e570072774897762f1de8" "miniconda" verify_py310
;;
"Linux-ppc64le" )
install_script "Miniconda3-py310_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-ppc64le.sh#5ed0af4645f49c4412e33a3f94396bcb3eb25f4a3ccb0bfe5bc23ef06bad6f3f" "miniconda" verify_py310
;;
"Linux-s390x" )
install_script "Miniconda3-py310_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-s390x.sh#5701eba074e3c2894949370ab456df48361a2efaad9b11209dbf8258ddf1e331" "miniconda" verify_py310
;;
"Linux-x86_64" )
install_script "Miniconda3-py310_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-x86_64.sh#738890e7a6f0719a942c632a0aab1df7a5a592c5667d0495d1f0495990a709ba" "miniconda" verify_py310
;;
"MacOSX-arm64" )
install_script "Miniconda3-py310_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-MacOSX-arm64.sh#ff2121c0a8245bbe63ff70cdb76b492c831889225f9c5277e096f08fd03e7f17" "miniconda" verify_py310
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py310_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-MacOSX-x86_64.sh#03a98ff5d1c813d7bf969203fe404d7a6f149b335c2077703656807721603495" "miniconda" verify_py310
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py310_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-aarch64.sh#d6a99c45326f8e849b18964090f0f5ac56bc4f173a6b18a4a5057bc09bd128f3" "miniconda" verify_py310
;;
"Linux-ppc64le" )
install_script "Miniconda3-py310_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-ppc64le.sh#920a8d8f9a6aa6bc1cd2ddf56cb0af779b3c70eb82d61fb05397814adfc0837f" "miniconda" verify_py310
;;
"Linux-s390x" )
install_script "Miniconda3-py310_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-s390x.sh#63962e4c21e13b680f62d8c7cf11fb1a4a2192188d0d7c0a0994099470b65567" "miniconda" verify_py310
;;
"Linux-x86_64" )
install_script "Miniconda3-py310_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-x86_64.sh#9f4cd0a9f7289a1e03b79fe6d06bab0769c46c33a774ea8a94dc3c1883344d85" "miniconda" verify_py310
;;
"MacOSX-arm64" )
install_script "Miniconda3-py310_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-MacOSX-arm64.sh#dde48d596695115a05218d694b20212d900a66c005a1926a9018a756b1188f1f" "miniconda" verify_py310
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py310_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-MacOSX-x86_64.sh#4e5315e39ce5be6d64fb0bf0a62aa6e8d09224542fa5b9a4d695c599bd6f66b0" "miniconda" verify_py310
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py310_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-aarch64.sh#24f7fe91032538cf2d9748facabae346e45e46ca21bb5f2d5875b7865dca6fa4" "miniconda" verify_py310
;;
"Linux-ppc64le" )
install_script "Miniconda3-py310_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-ppc64le.sh#3a76e4e400271d1589770dac8f696b03d1faf45fee57da38e8c399b6cb0daadb" "miniconda" verify_py310
;;
"Linux-s390x" )
install_script "Miniconda3-py310_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-s390x.sh#7a65b8593db0ec4b561b9968daca7c7c4f5f95cb21fe717ba895fded924bc056" "miniconda" verify_py310
;;
"Linux-x86_64" )
install_script "Miniconda3-py310_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh#ea5e6e8a3d5a0247b9df85382d27220fac8e59b5778fd313c5913879cd9baafc" "miniconda" verify_py310
;;
"MacOSX-arm64" )
install_script "Miniconda3-py310_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-MacOSX-arm64.sh#71b7ca2ae4068504f9c6dab30fd6e83694086241156af1e319d598befe0f3a26" "miniconda" verify_py310
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py310_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-MacOSX-x86_64.sh#13c57188a4bcb7462a7580c9ddf8ff2d301e353c835d33042a51a231667cf25d" "miniconda" verify_py310
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py311_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-aarch64.sh#6e3e60e7093194b3435fde19efc54d0dd78be393bf5b7487cc28cd1039ebed4d" "miniconda" verify_py311
;;
"Linux-ppc64le" )
install_script "Miniconda3-py311_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-ppc64le.sh#c1ab8b5d629f66a1609e456a0d6a83a2896af6dc0b2b702025cb19456030eacd" "miniconda" verify_py311
;;
"Linux-s390x" )
install_script "Miniconda3-py311_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-s390x.sh#42e7cc490fc81d9b1dc56cf8bd951e084e804824d60aca3a4b15d35c57ad373e" "miniconda" verify_py311
;;
"Linux-x86_64" )
install_script "Miniconda3-py311_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-x86_64.sh#61a5c087893f6210176045931b89ee6e8760c17abd9c862b2cab4c1b7d00f7c8" "miniconda" verify_py311
;;
"MacOSX-arm64" )
install_script "Miniconda3-py311_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-MacOSX-arm64.sh#c4ce7311d2d1c729bf8d98e6d5aa2581ce0b08a1480985e63efaf8529b2fc6ca" "miniconda" verify_py311
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py311_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-MacOSX-x86_64.sh#2503d9e852fcaf85adca825bde84bdc297b118fd2c14316e4f27a93a190a7bdd" "miniconda" verify_py311
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py311_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-aarch64.sh#a7a68db6676075aa20991d3fac6d7cfdb2bb3c815c0c17ea26fac96241486c6b" "miniconda" verify_py311
;;
"Linux-ppc64le" )
install_script "Miniconda3-py311_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-ppc64le.sh#63d6756dd9956e3ff581381fd319088fe23af53df8ccad8c6f029c89f5a1e534" "miniconda" verify_py311
;;
"Linux-s390x" )
install_script "Miniconda3-py311_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-s390x.sh#4472acdf8bab722a6dc4ef0b59636feac12b3520ef3d88c1bebd11106b596a96" "miniconda" verify_py311
;;
"Linux-x86_64" )
install_script "Miniconda3-py311_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-x86_64.sh#333779c9cae3fe14735949a8dcb9657b9e55ada69e9c60f191c5d582b2deac20" "miniconda" verify_py311
;;
"MacOSX-arm64" )
install_script "Miniconda3-py311_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-MacOSX-arm64.sh#52b3a134a73d48204e7517fb5b4378bece65a048e9a32c9276eb3fd51989b976" "miniconda" verify_py311
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py311_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-MacOSX-x86_64.sh#834a194e6d790eade3db98a78ec3f2857df13bb8b6661a26a34e67462561015b" "miniconda" verify_py311
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py311_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-aarch64.sh#3962738cfac270ae4ff30da0e382aecf6b3305a12064b196457747b157749a7a" "miniconda" verify_py311
;;
"Linux-ppc64le" )
install_script "Miniconda3-py311_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-ppc64le.sh#92237cb2a443dd15005ec004f2f744b14de02cd5513a00983c2f191eb43d1b29" "miniconda" verify_py311
;;
"Linux-s390x" )
install_script "Miniconda3-py311_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-s390x.sh#221a4cd7f0a9275c3263efa07fa37385746de884f4306bb5d1fe5733ca770550" "miniconda" verify_py311
;;
"Linux-x86_64" )
install_script "Miniconda3-py311_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-x86_64.sh#634d76df5e489c44ade4085552b97bebc786d49245ed1a830022b0b406de5817" "miniconda" verify_py311
;;
"MacOSX-arm64" )
install_script "Miniconda3-py311_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-MacOSX-arm64.sh#c8f436dbde130f171d39dd7b4fca669c223f130ba7789b83959adc1611a35644" "miniconda" verify_py311
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py311_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-MacOSX-x86_64.sh#1622e7a0fa60a7d3d892c2d8153b54cd6ffe3e6b979d931320ba56bd52581d4b" "miniconda" verify_py311
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,25 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py37_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-aarch64.sh#31c1d635fae931b7c0687018cc87e918e8098ed5dd5e76a658e10c57e00ef864" "miniconda" verify_py37
;;
"Linux-ppc64le" )
install_script "Miniconda3-py37_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-ppc64le.sh#d2de534bfa46aa34ef0b115a309de7e8a681683af65faf86bcee6a00460f07be" "miniconda" verify_py37
;;
"Linux-s390x" )
install_script "Miniconda3-py37_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-s390x.sh#72a8fa9aca5abaf99771110746b1345a33d390c9b29a7b4daffe6a2ff00f2366" "miniconda" verify_py37
;;
"Linux-x86_64" )
install_script "Miniconda3-py37_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-x86_64.sh#fc96109ea96493e31f70abbc5cae58e80634480c0686ab46924549ac41176812" "miniconda" verify_py37
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py37_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-MacOSX-x86_64.sh#bdfb2f01c0a3917bf258daffc65b69bfe07e29753be624aaf9cbda5ba02f43f4" "miniconda" verify_py37
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py38_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-aarch64.sh#10ea91cc579a64a3a88727119ac3f55839562f55118458b82824b544bc74f90d" "miniconda" verify_py38
;;
"Linux-ppc64le" )
install_script "Miniconda3-py38_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-ppc64le.sh#d89faee2d839c7e8a2c96f3ca60295c08e837c2f134f6bb9e9e21b707babedc2" "miniconda" verify_py38
;;
"Linux-s390x" )
install_script "Miniconda3-py38_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-s390x.sh#3d1e06eddaef0976530c54ed7dda80df62705c16513634e58f7d1c4567227b9e" "miniconda" verify_py38
;;
"Linux-x86_64" )
install_script "Miniconda3-py38_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-x86_64.sh#640b7dceee6fad10cb7e7b54667b2945c4d6f57625d062b2b0952b7f3a908ab7" "miniconda" verify_py38
;;
"MacOSX-arm64" )
install_script "Miniconda3-py38_23.1.0-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-MacOSX-arm64.sh#8dfab7797151a31b16c174da9a5bc09529d5859f21e77f0655ea9b18209cc926" "miniconda" verify_py38
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py38_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-MacOSX-x86_64.sh#5d789cda38b23245ffed6b88c60b7479d984bbf20e3b70d66cd150f04a9c25c5" "miniconda" verify_py38
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py38_23.3.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-aarch64.sh#ad491ebad6efec7470fe2139c8b407a895cb2c828b3233b97da6e4f22cae0cde" "miniconda" verify_py38
;;
"Linux-ppc64le" )
install_script "Miniconda3-py38_23.3.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-ppc64le.sh#8aa819800ba3ec88ad8518a9e4fc71ada8087547300fc53527c4ecc8072a4d50" "miniconda" verify_py38
;;
"Linux-s390x" )
install_script "Miniconda3-py38_23.3.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-s390x.sh#e4d83bb9f0900c9128504f7e3c4d3b9e5eaf3b87c4bb5190a3086947e92bd3fa" "miniconda" verify_py38
;;
"Linux-x86_64" )
install_script "Miniconda3-py38_23.3.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-x86_64.sh#d1f3a4388c1a6fd065e32870f67abc39eb38f4edd36c4947ec7411e32311bd59" "miniconda" verify_py38
;;
"MacOSX-arm64" )
install_script "Miniconda3-py38_23.3.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-MacOSX-arm64.sh#e0151c68f6a11a38b29c2f4a775bf6a22187fa2c8ca0f31930d69f2f013c0810" "miniconda" verify_py38
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py38_23.3.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-MacOSX-x86_64.sh#eb7b2d285f6d3b7c9cde9576c8c647e70b65361426b0e0e069b4ab23ccbb79e2" "miniconda" verify_py38
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py38_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-aarch64.sh#853e1c3c24f1c4cc2a1c57b05059740127724a2b346f887e3f0bb92a6cd05fe1" "miniconda" verify_py38
;;
"Linux-ppc64le" )
install_script "Miniconda3-py38_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-ppc64le.sh#5bef0b71b9c9c6a27e534894e913e47e545793a549a8815bb4a66a8c9d793d45" "miniconda" verify_py38
;;
"Linux-s390x" )
install_script "Miniconda3-py38_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-s390x.sh#e0271bc3af023053258cfe01059d53769bbd32dc5542b5c96280d29dcd8568f6" "miniconda" verify_py38
;;
"Linux-x86_64" )
install_script "Miniconda3-py38_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-x86_64.sh#f833ae8ad96db31d4f2a09d12f1b188721c769d60d813d7e6341c19e77bc791f" "miniconda" verify_py38
;;
"MacOSX-arm64" )
install_script "Miniconda3-py38_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-MacOSX-arm64.sh#5daf6837136d08a17f039b29993f67207ba90dcc90abe94c6d5a8925f6888076" "miniconda" verify_py38
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py38_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-MacOSX-x86_64.sh#54ead65ad1ff77d9cba2512a8765d64e6b7d8ae154e2fc1a6fcb01395b9a8cf3" "miniconda" verify_py38
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py38_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-aarch64.sh#dcf57b73c3db9b4ce5ab1407f0573c83241b5041f2c6fd590959a091ca518b4c" "miniconda" verify_py38
;;
"Linux-ppc64le" )
install_script "Miniconda3-py38_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-ppc64le.sh#1c141b28ffe6dee40fc04c0d175da22270b86c63ec67e71798cd15183d10bcf2" "miniconda" verify_py38
;;
"Linux-s390x" )
install_script "Miniconda3-py38_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-s390x.sh#1c7c2188cad19a1a00bf8a5895af8bd67a06f983ea02d34ad3cdb40cb6a86224" "miniconda" verify_py38
;;
"Linux-x86_64" )
install_script "Miniconda3-py38_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-x86_64.sh#05c1284d67d35abcc3a9b814cd124ec351020b9172962bcc166bf2f2ac22ea5e" "miniconda" verify_py38
;;
"MacOSX-arm64" )
install_script "Miniconda3-py38_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-MacOSX-arm64.sh#044bc2a3eab865448924bf2aeab069a7a61a174b132c58f6e9a88cf14c5b647c" "miniconda" verify_py38
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py38_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-MacOSX-x86_64.sh#ed617d73092e9f0b696f2b55e68126d751040ef6700c2ea38bc913bf18fd8956" "miniconda" verify_py38
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py38_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-aarch64.sh#cd39b811ac9a2f9094c4dfff9ec0f7ec811d6ad7ede5ab3f1a31d330ab3a2c55" "miniconda" verify_py38
;;
"Linux-ppc64le" )
install_script "Miniconda3-py38_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-ppc64le.sh#6fc3bf00d4fe0c724fab884d93b981acbc22bb8fc41c144df6d2fc080ff80e25" "miniconda" verify_py38
;;
"Linux-s390x" )
install_script "Miniconda3-py38_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-s390x.sh#b840fd5a8474a3e6831cd50a64eadf73239c6ad7deeebf2c3d3fe366220b2722" "miniconda" verify_py38
;;
"Linux-x86_64" )
install_script "Miniconda3-py38_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-x86_64.sh#e2a4438671e0e42c5bba14cb51de6ce9763938184d6ca2967340bbe972bbe7e6" "miniconda" verify_py38
;;
"MacOSX-arm64" )
install_script "Miniconda3-py38_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-MacOSX-arm64.sh#782bd1a401b20b41227a086adae98e270bbc942c3b7621788fb5574a9583142e" "miniconda" verify_py38
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py38_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-MacOSX-x86_64.sh#6dc8bfb3b382c31be1755545ae6afc5fbdf8a67726ffdb8a05b917204bd08779" "miniconda" verify_py38
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py39_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-aarch64.sh#5e67416a574c49e19dc21d5b9ed586400863a685bc4e34b4d933ea8c7c1ed2da" "miniconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Miniconda3-py39_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-ppc64le.sh#cf5d7cad2b0eb260903b3661ee3fa822eecb25cf3c9b14bc9de10d72963d3d5a" "miniconda" verify_py39
;;
"Linux-s390x" )
install_script "Miniconda3-py39_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-s390x.sh#5159322f15d9e2b22b3cf90fe88b336d84f62189178c872a9288a339d86f5d20" "miniconda" verify_py39
;;
"Linux-x86_64" )
install_script "Miniconda3-py39_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-x86_64.sh#5dc619babc1d19d6688617966251a38d245cb93d69066ccde9a013e1ebb5bf18" "miniconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Miniconda3-py39_23.1.0-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-MacOSX-arm64.sh#a7133a703e41ea0b1738196fb03f72b22250327adea94521c9dd6100c304dc63" "miniconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py39_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-MacOSX-x86_64.sh#d78eaac94f85bacbc704f629bdfbc2cd42a72dc3a4fd383a3bfc80997495320e" "miniconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py39_23.3.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-aarch64.sh#e93ccab720b57f821e0d758f54e9aee9bd2f0ea931ebb26b78d866704437a296" "miniconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Miniconda3-py39_23.3.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-ppc64le.sh#d2bcef86812863adaf11fcda6df829aa508760cbde4a19174cf0fec03e8498f5" "miniconda" verify_py39
;;
"Linux-s390x" )
install_script "Miniconda3-py39_23.3.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-s390x.sh#d0b658566edd239dd50fc28ab1d3a57b8b0da707481b3b18c27d11273c4fdb5a" "miniconda" verify_py39
;;
"Linux-x86_64" )
install_script "Miniconda3-py39_23.3.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-x86_64.sh#1564571a6a06a9999a75a6c65d63cb82911fc647e96ba5b729f904bf00c177d3" "miniconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Miniconda3-py39_23.3.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-MacOSX-arm64.sh#c74474bab188b8b3dcaf0f0ca52f5e0743591dbe171766016023d052acf96502" "miniconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py39_23.3.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-MacOSX-x86_64.sh#54d739715feb0cd5c127865215cc9f50697709d71e9ee7da430576c5a1c8010d" "miniconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py39_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-aarch64.sh#f77868e96eee904cd137ebe463439258d76281830bb9e2bd330d23aea1ddd31a" "miniconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Miniconda3-py39_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-ppc64le.sh#4bbda8ba3b8d1d26f04a469bbe29b3ef626a8b10b823f64314719e132f7c3696" "miniconda" verify_py39
;;
"Linux-s390x" )
install_script "Miniconda3-py39_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-s390x.sh#7ef72ef1411b028788c81308238b604cba46315cb42e70a2d65511c05440ebca" "miniconda" verify_py39
;;
"Linux-x86_64" )
install_script "Miniconda3-py39_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-x86_64.sh#b7fc320922235ccbaacba7b5a61e34671e75f3a2c7110c63db0c6a9f98ecf8a8" "miniconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Miniconda3-py39_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-MacOSX-arm64.sh#d006d99f86850510f9aed1a81e16a4213a4829e7ea6913f0c42054b4b0ac05a7" "miniconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py39_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-MacOSX-x86_64.sh#86ae780b5c5a32c45bc0f2e146941afea6dd1ca48e8d5e1bf99a83df255a0a78" "miniconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py39_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-aarch64.sh#ac438ca1a76d78622cc7768d94988e5673983f60f0302941ce05ea4e11e1376e" "miniconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Miniconda3-py39_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-ppc64le.sh#a981947722decf258e4a21f06ab5ddd545c709ba959957121a3e3b89b3dd860a" "miniconda" verify_py39
;;
"Linux-s390x" )
install_script "Miniconda3-py39_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-s390x.sh#b3ea1e4ce80901b70b49d14bc4a008d910410ddd58dead9c4c220834f5aa46c2" "miniconda" verify_py39
;;
"Linux-x86_64" )
install_script "Miniconda3-py39_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-x86_64.sh#960b7aa0294d6d828739ad5542fe1d8b81bb602be401ad00febdf9d29bf37514" "miniconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Miniconda3-py39_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-MacOSX-arm64.sh#63aaa53c1f6139d667f8e308a2849632efeb575e6223d075ab8a8c15850478d6" "miniconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py39_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-MacOSX-x86_64.sh#056b43eb844aac487e5f6e0f748c528a34cd3d38c8409f239a75bf89ffede3b9" "miniconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,28 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniconda3-py39_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-aarch64.sh#ecc06a39bdf786ebb8325a2754690a808f873154719c97d10087ef0883b69e84" "miniconda" verify_py39
;;
"Linux-ppc64le" )
install_script "Miniconda3-py39_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-ppc64le.sh#dc5aee01ee36a154b8070e6948b9a43773b6942476a144bc89e6135ac5beac58" "miniconda" verify_py39
;;
"Linux-s390x" )
install_script "Miniconda3-py39_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-s390x.sh#40ece8784a9e7dd521ab354ffc816bb466842ae3eee681a93647945c5070c9b4" "miniconda" verify_py39
;;
"Linux-x86_64" )
install_script "Miniconda3-py39_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-x86_64.sh#9829d95f639bd0053b2ed06d1204e60644617bf37dd5cc57523732e0e8d64516" "miniconda" verify_py39
;;
"MacOSX-arm64" )
install_script "Miniconda3-py39_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-MacOSX-arm64.sh#1b10164086354b39a46ff928eef5797ff57e0fa9706ccaf7d4e621b416541479" "miniconda" verify_py39
;;
"MacOSX-x86_64" )
install_script "Miniconda3-py39_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-MacOSX-x86_64.sh#dcbbdf92dc2954c79002b64ed53d3451e191dbdde0b30c67334f41dc6ca46ac1" "miniconda" verify_py39
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,25 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-aarch64" )
install_script "Miniforge3-22.11.1-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-Linux-aarch64.sh#2beb7624679016dcd4758ffb9b18efe4ba79af95e2357a606a4945f8ee64dbe6" "miniconda" verify_py310
;;
"Linux-ppc64le" )
install_script "Miniforge3-22.11.1-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-Linux-ppc64le.sh#d689249d97e170d4dedd54291eb6680243ef83b39900ecb1d6df0679c70434d4" "miniconda" verify_py310
;;
"Linux-x86_64" )
install_script "Miniforge3-22.11.1-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-Linux-x86_64.sh#737d1b2666528416706a916b355c43ff58deeaebf5ca906bc1a551e96c73ab8e" "miniconda" verify_py310
;;
"MacOSX-arm64" )
install_script "Miniforge3-22.11.1-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-MacOSX-arm64.sh#7be6b8b25eb328d6df048a7b533514097a6d30ff348d0f28671059c98c4c31aa" "miniconda" verify_py310
;;
"MacOSX-x86_64" )
install_script "Miniforge3-22.11.1-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-MacOSX-x86_64.sh#d3bd39dc391552a037a95230786c026165c042499fa365aae0da4002d9530731" "miniconda" verify_py310
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,43 @@
From 112cceb514e79b4c9805f9e5ea037a205be428da Mon Sep 17 00:00:00 2001
From: Inada Naoki <songofacandy@gmail.com>
Date: Tue, 14 May 2019 18:51:15 +0900
Subject: [PATCH 1/2] bpo-27987: pymalloc: align by 16bytes on 64bit platform
(GH-12850)
---
.../2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst | 3 +++
Objects/obmalloc.c | 6 ++++++
2 files changed, 9 insertions(+)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst
new file mode 100644
index 0000000000..b0f32a5c6c
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst
@@ -0,0 +1,3 @@
+pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on
+64-bit platforms to conform x86-64 ABI. Recent compilers assume this alignment
+more often. Patch by Inada Naoki.
diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c
index 9dd8421a33..da9029c4a6 100644
--- a/Objects/obmalloc.c
+++ b/Objects/obmalloc.c
@@ -540,8 +540,14 @@ static int running_on_valgrind = -1;
*
* You shouldn't change this unless you know what you are doing.
*/
+
+#if SIZEOF_VOID_P > 4
+#define ALIGNMENT 16 /* must be 2^N */
+#define ALIGNMENT_SHIFT 4
+#else
#define ALIGNMENT 8 /* must be 2^N */
#define ALIGNMENT_SHIFT 3
+#endif
/* Return the number of bytes in size class I, as a uint. */
#define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)
--
2.38.4

View File

@@ -0,0 +1,40 @@
From 618ef35426ecc57da1bee50f8dc5896f5fb178a9 Mon Sep 17 00:00:00 2001
From: Inada Naoki <songofacandy@gmail.com>
Date: Sat, 25 May 2019 21:13:33 +0900
Subject: [PATCH 2/2] bpo-27987: align PyGC_Head to alignof(long double)
(GH-13335)
---
Include/objimpl.h | 6 +++++-
.../2019-05-15-18-28-43.bpo-27987.FaxuLy.rst | 2 ++
2 files changed, 7 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst
diff --git a/Include/objimpl.h b/Include/objimpl.h
index 65b6d91c36..eaf57975c8 100644
--- a/Include/objimpl.h
+++ b/Include/objimpl.h
@@ -250,7 +250,11 @@ typedef union _gc_head {
union _gc_head *gc_prev;
Py_ssize_t gc_refs;
} gc;
- double dummy; /* force worst-case alignment */
+ long double dummy; /* force worst-case alignment */
+ // malloc returns memory block aligned for any built-in types and
+ // long double is the largest standard C type.
+ // On amd64 linux, long double requires 16 byte alignment.
+ // See bpo-27987 for more discussion.
} PyGC_Head;
extern PyGC_Head *_PyGC_generation0;
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst
new file mode 100644
index 0000000000..97ca37b262
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst
@@ -0,0 +1,2 @@
+``PyGC_Head`` structure is aligned to ``long double``. This is needed to
+GC-ed objects are aligned properly. Patch by Inada Naoki.
--
2.38.4

View File

@@ -0,0 +1,86 @@
From 655f26bb742d6bd32c388e9fea14b64eb25fd4de Mon Sep 17 00:00:00 2001
From: Ned Deily <nad@python.org>
Date: Tue, 15 Mar 2022 03:18:39 -0400
Subject: [PATCH] bpo-45405: Prevent internal configure error when running
configure with recent versions of clang. (GH-28845) (GH-31890)
Change the configure logic to function properly on macOS when the compiler
outputs a platform triplet for option --print-multiarch.
The Apple Clang included with Xcode 13.3 now supports --print-multiarch
causing configure to fail without this change.
Co-authored-by: Ned Deily <nad@python.org>
(cherry picked from commit 9c4766772cda67648184f8ddba546a5fc0167f91)
Co-authored-by: David Bohman <debohman@gmail.com>
(cherry picked from commit 720bb456dc711b0776bae837d1f9a0b10c28ddf2)
---
.../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++
configure | 8 +++++---
configure.ac | 8 +++++---
3 files changed, 12 insertions(+), 6 deletions(-)
create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
new file mode 100644
index 0000000000..13c93d1b8a
--- /dev/null
+++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst
@@ -0,0 +1,2 @@
+Prevent ``internal configure error`` when running ``configure``
+with recent versions of clang. Patch by David Bohman.
diff --git a/configure b/configure
index fb0a499145..67e6e69b5f 100755
--- a/configure
+++ b/configure
@@ -5203,9 +5203,6 @@ $as_echo "$as_me:
fi
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
-
-
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5
$as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; }
cat >> conftest.c <<EOF
@@ -5334,6 +5331,11 @@ $as_echo "none" >&6; }
fi
rm -f conftest.c conftest.out
+if test x$PLATFORM_TRIPLET != xdarwin; then
+ MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+fi
+
+
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5
diff --git a/configure.ac b/configure.ac
index d86dad9a7c..468ad6070f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -747,9 +747,6 @@ then
fi
-MULTIARCH=$($CC --print-multiarch 2>/dev/null)
-AC_SUBST(MULTIARCH)
-
AC_MSG_CHECKING([for the platform triplet based on compiler characteristics])
cat >> conftest.c <<EOF
#undef bfin
@@ -875,6 +872,11 @@ else
fi
rm -f conftest.c conftest.out
+if test x$PLATFORM_TRIPLET != xdarwin; then
+ MULTIARCH=$($CC --print-multiarch 2>/dev/null)
+fi
+AC_SUBST(MULTIARCH)
+
if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
if test x$PLATFORM_TRIPLET != x$MULTIARCH; then
AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report])
--
2.32.0 (Apple Git-132)

View File

@@ -0,0 +1,41 @@
From 002501946bad91a308f37a09204393c172f03c3e Mon Sep 17 00:00:00 2001
From: Takumi Sueda <puhitaku@gmail.com>
Date: Sat, 11 Sep 2021 16:50:14 +0900
Subject: [PATCH 2/6] Detect arm64 in configure
---
configure | 3 +++
configure.ac | 3 +++
2 files changed, 6 insertions(+)
diff --git a/configure b/configure
index e39c16eee2..8dc1fc7595 100755
--- a/configure
+++ b/configure
@@ -9230,6 +9230,9 @@ fi
ppc)
MACOSX_DEFAULT_ARCH="ppc64"
;;
+ arm64)
+ MACOSX_DEFAULT_ARCH="arm64"
+ ;;
*)
as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5
;;
diff --git a/configure.ac b/configure.ac
index cf280506bd..34846a7df3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2435,6 +2435,9 @@ case $ac_sys_system/$ac_sys_release in
ppc)
MACOSX_DEFAULT_ARCH="ppc64"
;;
+ arm64)
+ MACOSX_DEFAULT_ARCH="arm64"
+ ;;
*)
AC_MSG_ERROR([Unexpected output of 'arch' on OSX])
;;
--
2.30.1 (Apple Git-130)

View File

@@ -0,0 +1,48 @@
From 8ea6353f60625c96ce96588c70ff24a77f8c71f9 Mon Sep 17 00:00:00 2001
From: Ronald Oussoren <ronaldoussoren@mac.com>
Date: Thu, 25 Jun 2020 16:55:48 +0200
Subject: [PATCH] BPO-41100: Support macOS 11 when building (GH-21113)
---
Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst | 1 +
configure | 2 +-
configure.ac | 2 +-
3 files changed, 3 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
diff --git a/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
new file mode 100644
index 0000000000..ded66b567a
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
@@ -0,0 +1 @@
+Support macOS 11 when building.
diff --git a/configure b/configure
index c51f396824..5024860ca4 100755
--- a/configure
+++ b/configure
@@ -3375,7 +3375,7 @@ $as_echo "#define _BSD_SOURCE 1" >>confdefs.h
# has no effect, don't bother defining them
Darwin/[6789].*)
define_xopen_source=no;;
- Darwin/1[0-9].*)
+ Darwin/[12][0-9].*)
define_xopen_source=no;;
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
diff --git a/configure.ac b/configure.ac
index 70deefb6b9..5a3e340aa3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -495,7 +495,7 @@ case $ac_sys_system/$ac_sys_release in
# has no effect, don't bother defining them
Darwin/@<:@6789@:>@.*)
define_xopen_source=no;;
- Darwin/1@<:@0-9@:>@.*)
+ Darwin/@<:@[12]@:>@@<:@0-9@:>@.*)
define_xopen_source=no;;
# On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but
# used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined
--
2.30.1 (Apple Git-130)

View File

@@ -0,0 +1,37 @@
From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001
From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com>
Date: Tue, 30 Jun 2020 02:15:46 -0700
Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228)
Patch by Lawrence Danna.
---
.../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 +
Modules/_decimal/libmpdec/mpdecimal.h | 3 +++
2 files changed, 4 insertions(+)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst
new file mode 100644
index 0000000000..d6176d69f0
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst
@@ -0,0 +1 @@
+add arm64 to the allowable Mac OS arches in mpdecimal.h
\ No newline at end of file
diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h
index 108b76efa8..35ce429f60 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.h
+++ b/Modules/_decimal/libmpdec/mpdecimal.h
@@ -135,6 +135,9 @@ const char *mpd_version(void);
#elif defined(__x86_64__)
#define CONFIG_64
#define ASM
+ #elif defined(__arm64__)
+ #define CONFIG_64
+ #define ANSI
#else
#error "unknown architecture for universal build."
#endif
--
2.30.1 (Apple Git-130)

View File

@@ -0,0 +1,132 @@
From 409b4ecef88643996ce00482b650c0246a977a4b Mon Sep 17 00:00:00 2001
From: Chaim Halbert <chaim.leib.halbert@gmail.com>
Date: Sun, 26 Feb 2023 06:21:54 -0700
Subject: [PATCH] Port ctypes and system libffi patch for arm64/macOS 10.15+ to
Python 3.5.10
This backports the following ctypes and libffi pyenv patch for Python
3.6.15 to Python 3.5.10:
* `0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch`
This patch enables use of system libffi (fixing a broken `ctypes` module
on arm64 targets) and enables calling variadic functions on arm64.
---
setup.py | 65 +++++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 50 insertions(+), 15 deletions(-)
diff --git a/setup.py b/setup.py
index 2944c9dd6f..ab8065866f 100644
--- a/setup.py
+++ b/setup.py
@@ -73,6 +73,13 @@ def macosx_sdk_root():
sysroot = m.group(1)
return sysroot
+def is_macosx_at_least(vers):
+ if host_platform == 'darwin':
+ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
+ if dep_target:
+ return tuple(map(int, str(dep_target).split('.'))) >= vers
+ return False
+
def is_macosx_sdk_path(path):
"""
Returns True if 'path' can be located in an OSX SDK
@@ -81,6 +88,13 @@ def is_macosx_sdk_path(path):
or path.startswith('/System/')
or path.startswith('/Library/') )
+def grep_headers_for(function, headers):
+ for header in headers:
+ with open(header, 'r') as f:
+ if function in f.read():
+ return True
+ return False
+
def find_file(filename, std_dirs, paths):
"""Searches for the directory where a given file is located,
and returns a possibly-empty list of additional directories, or None
@@ -1939,7 +1953,11 @@ class PyBuildExt(build_ext):
return True
def detect_ctypes(self, inc_dirs, lib_dirs):
- self.use_system_libffi = False
+ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)):
+ self.use_system_libffi = True
+ else:
+ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")
+
include_dirs = []
extra_compile_args = []
extra_link_args = []
@@ -1986,19 +2004,29 @@ class PyBuildExt(build_ext):
libraries=math_libs)
self.extensions.extend([ext, ext_test])
- if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"):
- return
+ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR")
+ ffi_lib = None
if host_platform == 'darwin':
- # OS X 10.5 comes with libffi.dylib; the include files are
- # in /usr/include/ffi
- inc_dirs.append('/usr/include/ffi')
-
- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
- if not ffi_inc or ffi_inc[0] == '':
- ffi_inc = find_file('ffi.h', [], inc_dirs)
- if ffi_inc is not None:
- ffi_h = ffi_inc[0] + '/ffi.h'
+ if not self.use_system_libffi:
+ return
+ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi")
+ if os.path.exists(ffi_in_sdk):
+ ffi_inc = ffi_in_sdk
+ ffi_lib = 'ffi'
+ else:
+ # OS X 10.5 comes with libffi.dylib; the include files are
+ # in /usr/include/ffi
+ inc_dirs.append('/usr/include/ffi')
+ elif '--without-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"):
+ return
+
+ if not ffi_inc:
+ found = find_file('ffi.h', [], inc_dirs)
+ if found:
+ ffi_inc = found[0]
+ if ffi_inc:
+ ffi_h = ffi_inc + '/ffi.h'
with open(ffi_h) as f:
for line in f:
line = line.strip()
@@ -2009,15 +2037,22 @@ class PyBuildExt(build_ext):
ffi_inc = None
print('Header file {} does not define LIBFFI_H or '
'ffi_wrapper_h'.format(ffi_h))
- ffi_lib = None
- if ffi_inc is not None:
+ if ffi_lib is None and ffi_inc is not None:
for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'):
if (self.compiler.find_library_file(lib_dirs, lib_name)):
ffi_lib = lib_name
break
if ffi_inc and ffi_lib:
- ext.include_dirs.extend(ffi_inc)
+ ffi_headers = glob(os.path.join(ffi_inc, '*.h'))
+ if grep_headers_for('ffi_closure_alloc', ffi_headers):
+ try:
+ sources.remove('_ctypes/malloc_closure.c')
+ except ValueError:
+ pass
+ if grep_headers_for('ffi_prep_cif_var', ffi_headers):
+ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1")
+ ext.include_dirs.append(ffi_inc)
ext.libraries.append(ffi_lib)
self.use_system_libffi = True
--
2.39.2

View File

@@ -0,0 +1,93 @@
From 2ad0bb719f5ce416d3bfa366814ebcf3b654f081 Mon Sep 17 00:00:00 2001
From: Ivan Pozdeev <vano@mail.mipt.ru>
Date: Sat, 10 Jun 2023 20:17:25 +0300
Subject: [PATCH] bpo-36231: Support building on macOS without /usr/include
(GH-13773) (GH-14208)
---
.../2019-06-03-05-49-49.bpo-36231.RfmW_p.rst | 3 ++
setup.py | 53 ++++++++++++++++---
2 files changed, 49 insertions(+), 7 deletions(-)
create mode 100644 Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst
diff --git a/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst b/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst
new file mode 100644
index 0000000000..c82e54c12c
--- /dev/null
+++ b/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst
@@ -0,0 +1,3 @@
+Support building Python on macOS without /usr/include installed. As of macOS
+10.14, system header files are only available within an SDK provided by
+either the Command Line Tools or the Xcode app.
diff --git a/setup.py b/setup.py
index ab8065866f..28dc801845 100644
--- a/setup.py
+++ b/setup.py
@@ -60,18 +60,57 @@ def add_dir_to_list(dirlist, dir):
return
dirlist.insert(0, dir)
+MACOS_SDK_ROOT = None
+
def macosx_sdk_root():
+ """Return the directory of the current macOS SDK.
+
+ If no SDK was explicitly configured, call the compiler to find which
+ include files paths are being searched by default. Use '/' if the
+ compiler is searching /usr/include (meaning system header files are
+ installed) or use the root of an SDK if that is being searched.
+ (The SDK may be supplied via Xcode or via the Command Line Tools).
+ The SDK paths used by Apple-supplied tool chains depend on the
+ setting of various variables; see the xcrun man page for more info.
"""
- Return the directory of the current OSX SDK,
- or '/' if no SDK was specified.
- """
+ global MACOS_SDK_ROOT
+
+ # If already called, return cached result.
+ if MACOS_SDK_ROOT:
+ return MACOS_SDK_ROOT
+
cflags = sysconfig.get_config_var('CFLAGS')
m = re.search(r'-isysroot\s+(\S+)', cflags)
- if m is None:
- sysroot = '/'
+ if m is not None:
+ MACOS_SDK_ROOT = m.group(1)
else:
- sysroot = m.group(1)
- return sysroot
+ MACOS_SDK_ROOT = '/'
+ cc = sysconfig.get_config_var('CC')
+ tmpfile = '/tmp/setup_sdk_root.%d' % os.getpid()
+ try:
+ os.unlink(tmpfile)
+ except:
+ pass
+ ret = os.system('%s -E -v - </dev/null 2>%s 1>/dev/null' % (cc, tmpfile))
+ in_incdirs = False
+ try:
+ if ret >> 8 == 0:
+ with open(tmpfile) as fp:
+ for line in fp.readlines():
+ if line.startswith("#include <...>"):
+ in_incdirs = True
+ elif line.startswith("End of search list"):
+ in_incdirs = False
+ elif in_incdirs:
+ line = line.strip()
+ if line == '/usr/include':
+ MACOS_SDK_ROOT = '/'
+ elif line.endswith(".sdk/usr/include"):
+ MACOS_SDK_ROOT = line[:-12]
+ finally:
+ os.unlink(tmpfile)
+
+ return MACOS_SDK_ROOT
def is_macosx_at_least(vers):
if host_platform == 'darwin':
--
2.36.1.windows.1

View File

@@ -0,0 +1,28 @@
From 3cc28dc409d0db3752278379e7a8d4c23e0f2e29 Mon Sep 17 00:00:00 2001
From: Ronald Oussoren <ronaldoussoren@mac.com>
Date: Sat, 14 Nov 2020 16:07:47 +0100
Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8
encoding (GH-23279)
grep_headers_for() would error out when a header contained
text that cannot be interpreted as UTF-8.
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index 28dc801845..dd50485213 100644
--- a/setup.py
+++ b/setup.py
@@ -129,7 +129,7 @@ def is_macosx_sdk_path(path):
def grep_headers_for(function, headers):
for header in headers:
- with open(header, 'r') as f:
+ with open(header, 'r', errors='surrogateescape') as f:
if function in f.read():
return True
return False
--
2.36.1.windows.1

View File

@@ -0,0 +1,43 @@
From 54dc627769bf112b0181972a52c4b45e4a02da57 Mon Sep 17 00:00:00 2001
From: Inada Naoki <songofacandy@gmail.com>
Date: Tue, 14 May 2019 18:51:15 +0900
Subject: [PATCH 09/10] bpo-27987: pymalloc: align by 16bytes on 64bit platform
(GH-12850)
---
.../2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst | 3 +++
Objects/obmalloc.c | 6 ++++++
2 files changed, 9 insertions(+)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst
new file mode 100644
index 0000000000..b0f32a5c6c
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst
@@ -0,0 +1,3 @@
+pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on
+64-bit platforms to conform x86-64 ABI. Recent compilers assume this alignment
+more often. Patch by Inada Naoki.
diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c
index d46d149311..47283354f4 100644
--- a/Objects/obmalloc.c
+++ b/Objects/obmalloc.c
@@ -650,8 +650,14 @@ static int running_on_valgrind = -1;
*
* You shouldn't change this unless you know what you are doing.
*/
+
+#if SIZEOF_VOID_P > 4
+#define ALIGNMENT 16 /* must be 2^N */
+#define ALIGNMENT_SHIFT 4
+#else
#define ALIGNMENT 8 /* must be 2^N */
#define ALIGNMENT_SHIFT 3
+#endif
/* Return the number of bytes in size class I, as a uint. */
#define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT)
--
2.38.4

View File

@@ -0,0 +1,40 @@
From e68ff170dc6764b22886e703f583fb53e90367ef Mon Sep 17 00:00:00 2001
From: Inada Naoki <songofacandy@gmail.com>
Date: Sat, 25 May 2019 21:13:33 +0900
Subject: [PATCH 10/10] bpo-27987: align PyGC_Head to alignof(long double)
(GH-13335)
---
Include/objimpl.h | 6 +++++-
.../2019-05-15-18-28-43.bpo-27987.FaxuLy.rst | 2 ++
2 files changed, 7 insertions(+), 1 deletion(-)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst
diff --git a/Include/objimpl.h b/Include/objimpl.h
index e7a3696d7a..90d71b87ea 100644
--- a/Include/objimpl.h
+++ b/Include/objimpl.h
@@ -255,7 +255,11 @@ typedef union _gc_head {
union _gc_head *gc_prev;
Py_ssize_t gc_refs;
} gc;
- double dummy; /* force worst-case alignment */
+ long double dummy; /* force worst-case alignment */
+ // malloc returns memory block aligned for any built-in types and
+ // long double is the largest standard C type.
+ // On amd64 linux, long double requires 16 byte alignment.
+ // See bpo-27987 for more discussion.
} PyGC_Head;
extern PyGC_Head *_PyGC_generation0;
diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst
new file mode 100644
index 0000000000..97ca37b262
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst
@@ -0,0 +1,2 @@
+``PyGC_Head`` structure is aligned to ``long double``. This is needed to
+GC-ed objects are aligned properly. Patch by Inada Naoki.
--
2.38.4

View File

@@ -0,0 +1,310 @@
From: Christian Hammond <christian@beanbaginc.com>
Date: Wed, 15 Dec 2021 23:12:36 -0800
Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12
This ports the following ctypes and libffi pyenv patches for Python
2.7.18 to Python 3.7.12:
* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch`
* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch`
* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch`
These patches enable use of system libffi (fixing a broken `ctypes`
module on arm64 targets) and enable calling variadic functions on arm64.
They've been combined from patches port from Homebrew to pyenv by Takumi
Sueda, updated to work on the Python 3.7.12 codebase.
The Homebrew patches are themselves backports of changes in Python 3.9
and 3.10. That patch can be found at:
https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch
diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst
index 715d595b24..7743144978 100644
--- a/Doc/library/ctypes.rst
+++ b/Doc/library/ctypes.rst
@@ -1551,6 +1551,13 @@ They are instances of a private class:
value usable as argument (integer, string, ctypes instance). This allows
defining adapters that can adapt custom objects as function parameters.
+ .. attribute:: variadic
+
+ Assign a boolean to specify that the function takes a variable number of
+ arguments. This does not matter on most platforms, but for Apple arm64
+ platforms variadic functions have a different calling convention than
+ normal functions.
+
.. attribute:: errcheck
Assign a Python function or another callable to this attribute. The
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 4ebd82d3e0..7b73c190b6 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase):
def test_from_format(self):
support.import_module('ctypes')
from ctypes import (
+ c_char_p,
pythonapi, py_object, sizeof,
c_int, c_long, c_longlong, c_ssize_t,
c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p)
name = "PyUnicode_FromFormat"
_PyUnicode_FromFormat = getattr(pythonapi, name)
+ _PyUnicode_FromFormat.argtypes = (c_char_p,)
+ _PyUnicode_FromFormat.variadic = True
_PyUnicode_FromFormat.restype = py_object
def PyUnicode_FromFormat(format, *args):
diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c
index dd0c61fd8a..79137e1dc7 100644
--- a/Modules/_ctypes/_ctypes.c
+++ b/Modules/_ctypes/_ctypes.c
@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored))
}
}
+static int
+PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob)
+{
+ StgDictObject *dict = PyObject_stgdict((PyObject *)self);
+ assert(dict);
+ int r = PyObject_IsTrue(ob);
+ if (r == 1) {
+ dict->flags |= FUNCFLAG_VARIADIC;
+ return 0;
+ } else if (r == 0) {
+ dict->flags &= ~FUNCFLAG_VARIADIC;
+ return 0;
+ } else {
+ return -1;
+ }
+}
+
+static PyObject *
+PyCFuncPtr_get_variadic(PyCFuncPtrObject *self)
+{
+ StgDictObject *dict = PyObject_stgdict((PyObject *)self);
+ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */
+ if (dict->flags & FUNCFLAG_VARIADIC)
+ Py_RETURN_TRUE;
+ else
+ Py_RETURN_FALSE;
+}
+
static int
PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored))
{
@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = {
{ "argtypes", (getter)PyCFuncPtr_get_argtypes,
(setter)PyCFuncPtr_set_argtypes,
"specify the argument types", NULL },
+ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic,
+ "specify if function takes variable number of arguments", NULL },
{ NULL, NULL }
};
@@ -5632,6 +5662,7 @@ PyInit__ctypes(void)
PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO));
PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR));
PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI));
+ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC));
PyModule_AddStringConstant(m, "__version__", "1.1.0");
PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove));
diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c
index 9cbf9801ad..e7fe11176b 100644
--- a/Modules/_ctypes/callproc.c
+++ b/Modules/_ctypes/callproc.c
@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags,
ffi_type **atypes,
ffi_type *restype,
void *resmem,
- int argcount)
+ int argcount,
+ int argtypecount)
{
PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */
PyObject *error_object = NULL;
@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags,
if ((flags & FUNCFLAG_CDECL) == 0)
cc = FFI_STDCALL;
#endif
- if (FFI_OK != ffi_prep_cif(&cif,
- cc,
- argcount,
- restype,
- atypes)) {
- PyErr_SetString(PyExc_RuntimeError,
- "ffi_prep_cif failed");
- return -1;
+
+#if HAVE_FFI_PREP_CIF_VAR
+ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but
+ * lots of existing code will not. If there's at least one arg and more
+ * args are passed than are defined in the prototype, then it must be a
+ * variadic function. */
+ if ((flags & FUNCFLAG_VARIADIC) ||
+ (argtypecount != 0 && argcount > argtypecount))
+ {
+ if (FFI_OK != ffi_prep_cif_var(&cif,
+ cc,
+ argtypecount,
+ argcount,
+ restype,
+ atypes)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "ffi_prep_cif_var failed");
+ return -1;
+ }
+ } else {
+#endif
+ if (FFI_OK != ffi_prep_cif(&cif,
+ cc,
+ argcount,
+ restype,
+ atypes)) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "ffi_prep_cif failed");
+ return -1;
+ }
+#if HAVE_FFI_PREP_CIF_VAR
}
+#endif
if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) {
error_object = _ctypes_get_errobj(&space);
@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc,
if (-1 == _call_function_pointer(flags, pProc, avalues, atypes,
rtype, resbuf,
- Py_SAFE_DOWNCAST(argcount,
- Py_ssize_t,
- int)))
+ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int),
+ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int)))
goto cleanup;
#ifdef WORDS_BIGENDIAN
diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h
index e58f85233c..e45975f6ad 100644
--- a/Modules/_ctypes/ctypes.h
+++ b/Modules/_ctypes/ctypes.h
@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc,
#define FUNCFLAG_PYTHONAPI 0x4
#define FUNCFLAG_USE_ERRNO 0x8
#define FUNCFLAG_USE_LASTERROR 0x10
+#define FUNCFLAG_VARIADIC 0x20
#define TYPEFLAG_ISPOINTER 0x100
#define TYPEFLAG_HASPOINTER 0x200
diff --git a/setup.py b/setup.py
index bf90600eaa..48ff120e9a 100644
--- a/setup.py
+++ b/setup.py
@@ -142,6 +142,13 @@ def macosx_sdk_root():
return MACOS_SDK_ROOT
+def is_macosx_at_least(vers):
+ if host_platform == 'darwin':
+ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET')
+ if dep_target:
+ return tuple(map(int, str(dep_target).split('.'))) >= vers
+ return False
+
def is_macosx_sdk_path(path):
"""
Returns True if 'path' can be located in an OSX SDK
@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path):
or path.startswith('/System/')
or path.startswith('/Library/') )
+def grep_headers_for(function, headers):
+ for header in headers:
+ with open(header, 'r') as f:
+ if function in f.read():
+ return True
+ return False
+
def find_file(filename, std_dirs, paths):
"""Searches for the directory where a given file is located,
and returns a possibly-empty list of additional directories, or None
@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext):
return True
def detect_ctypes(self, inc_dirs, lib_dirs):
- self.use_system_libffi = False
+ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)):
+ self.use_system_libffi = True
+ else:
+ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS")
+
include_dirs = []
extra_compile_args = []
extra_link_args = []
@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext):
libraries=['m'])
self.extensions.extend([ext, ext_test])
+ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR")
+ ffi_lib = None
+
if host_platform == 'darwin':
- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"):
+ if not self.use_system_libffi:
return
- # OS X 10.5 comes with libffi.dylib; the include files are
- # in /usr/include/ffi
- inc_dirs.append('/usr/include/ffi')
-
- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")]
- if not ffi_inc or ffi_inc[0] == '':
- ffi_inc = find_file('ffi.h', [], inc_dirs)
- if ffi_inc is not None:
- ffi_h = ffi_inc[0] + '/ffi.h'
+ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi")
+ if os.path.exists(ffi_in_sdk):
+ ffi_inc = ffi_in_sdk
+ ffi_lib = 'ffi'
+ else:
+ # OS X 10.5 comes with libffi.dylib; the include files are
+ # in /usr/include/ffi
+ inc_dirs.append('/usr/include/ffi')
+
+ if not ffi_inc:
+ found = find_file('ffi.h', [], inc_dirs)
+ if found:
+ ffi_inc = found[0]
+ if ffi_inc:
+ ffi_h = ffi_inc + '/ffi.h'
if not os.path.exists(ffi_h):
ffi_inc = None
print('Header file {} does not exist'.format(ffi_h))
- ffi_lib = None
- if ffi_inc is not None:
- for lib_name in ('ffi', 'ffi_pic'):
+
+ if ffi_lib is None and ffi_inc:
+ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'):
if (self.compiler.find_library_file(lib_dirs, lib_name)):
ffi_lib = lib_name
break
if ffi_inc and ffi_lib:
- ext.include_dirs.extend(ffi_inc)
+ ffi_headers = glob(os.path.join(ffi_inc, '*.h'))
+ if grep_headers_for('ffi_closure_alloc', ffi_headers):
+ try:
+ sources.remove('_ctypes/malloc_closure.c')
+ except ValueError:
+ pass
+ if grep_headers_for('ffi_prep_cif_var', ffi_headers):
+ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1")
+ ext.include_dirs.append(ffi_inc)
ext.libraries.append(ffi_lib)
self.use_system_libffi = True
--
2.30.1 (Apple Git-130)

View File

@@ -0,0 +1,37 @@
From f2595c038ed7bfd182d9d05d83786106ebd02ca0 Mon Sep 17 00:00:00 2001
From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com>
Date: Tue, 30 Jun 2020 02:15:46 -0700
Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228)
Patch by Lawrence Danna.
---
.../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 +
Modules/_decimal/libmpdec/mpdecimal.h | 3 +++
2 files changed, 4 insertions(+)
create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst
diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst
new file mode 100644
index 0000000000..d6176d69f0
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst
@@ -0,0 +1 @@
+add arm64 to the allowable Mac OS arches in mpdecimal.h
\ No newline at end of file
diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h
index a67dd9bc12..3e9c8185c3 100644
--- a/Modules/_decimal/libmpdec/mpdecimal.h
+++ b/Modules/_decimal/libmpdec/mpdecimal.h
@@ -135,6 +135,9 @@ const char *mpd_version(void);
#elif defined(__x86_64__)
#define CONFIG_64
#define ASM
+ #elif defined(__arm64__)
+ #define CONFIG_64
+ #define ANSI
#else
#error "unknown architecture for universal build."
#endif
--
2.37.3

View File

@@ -0,0 +1,30 @@
From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001
From: Ronald Oussoren <ronaldoussoren@mac.com>
Date: Sat, 14 Nov 2020 16:07:47 +0100
Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8
encoding (GH-23279)
grep_headers_for() would error out when a header contained
text that cannot be interpreted as UTF-8.
cherry-picked from 7a27c7ed4b by Pedro Fonini <fonini@ip.tv>
---
setup.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index f211989aac..467362813d 100644
--- a/setup.py
+++ b/setup.py
@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path):
def grep_headers_for(function, headers):
for header in headers:
- with open(header, 'r') as f:
+ with open(header, 'r', errors='surrogateescape') as f:
if function in f.read():
return True
return False
--
2.34.1

View File

@@ -0,0 +1,30 @@
diff --git a/configure b/configure
index 5c74f00a..8bb51f40 100755
--- a/configure
+++ b/configure
@@ -7057,8 +7057,8 @@ $as_echo "$ac_cv_extra_warnings" >&6; }
if test $ac_cv_extra_warnings = yes
then
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
fi
# Python doesn't violate C99 aliasing rules, but older versions of
diff --git a/configure.ac b/configure.ac
index c06b992d..6dee6632 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1622,8 +1622,8 @@ yes)
if test $ac_cv_extra_warnings = yes
then
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
fi
# Python doesn't violate C99 aliasing rules, but older versions of

View File

@@ -0,0 +1,30 @@
diff --git a/configure b/configure
index 0df332f7..df8143cf 100755
--- a/configure
+++ b/configure
@@ -6952,8 +6952,8 @@ $as_echo "$ac_cv_extra_warnings" >&6; }
if test $ac_cv_extra_warnings = yes
then
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
fi
# Python doesn't violate C99 aliasing rules, but older versions of
diff --git a/configure.ac b/configure.ac
index f6718e36..0a651e7d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1579,8 +1579,8 @@ yes)
if test $ac_cv_extra_warnings = yes
then
- CFLAGS_NODIST="$CFLAGS_NODIST -Wextra -Werror"
- CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Werror -Wno-implicit-fallthrough"
+ CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
+ CXXFLAGS_NODIST="$CXXFLAGS_NODIST -Wextra -Wno-implicit-fallthrough"
fi
# Python doesn't violate C99 aliasing rules, but older versions of

View File

@@ -0,0 +1,81 @@
VERSION='7.3.12'
PYVER='2.7'
# https://www.pypy.org/checksums.html
aarch64_hash=e04dcb6286a7b4724ec3f0e50d3cc1ba8583301dd1658c06d7f37599e4201c59
linux32_hash=abf3ae477bd0e526ac6dcefe0bfa845e1535aa053342c0d641219bfcde4b9b56
linux64_hash=1a61a2574b79466f606010f2999a2b995bd96cd085f91a78ebdd3d5c2c40e81d
osarm64_hash=6b747aa076ae8597e49603c5dec4ca5935a1a0a132d7404a559be96a260d9bf7
osx64_hash=6e89ffdd15537ce4ffce3145b65ee57c2e9c952892bd95b934012d2f009f503b
s390x_hash=80c0154d8b0949f9dc6a227c322abbc9590c8ae4c9f11c13bf4022aa38b82064
### end of manual settings - following lines same for every download
function err_no_binary {
local archmsg="${1}"
local ver="pypy${PYVER}-v${VERSION}-src"
local url="https://downloads.python.org/pypy/${ver}.tar.bz2"
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for ${archmsg}."
echo "try '${url}' to build from source."
echo
} >&2
exit 1
}
function pypy_pkg_data {
# pypy architecture tag
local ARCH="${1}"
# defaults
local cmd='install_package' # use bz2
local pkg="${ARCH}" # assume matches
local ext='tar.bz2'
local hash='' # undefined
# select the hash, fix pkg if not match ARCH
case "${ARCH}" in
'linux-aarch64' )
hash="${aarch64_hash}"
pkg='aarch64'
;;
'linux' )
hash="${linux32_hash}"
pkg='linux32'
;;
'linux64' )
hash="${linux64_hash}"
;;
'osarm64' )
hash="${osarm64_hash}"
pkg='macos_arm64'
;;
'osx64' )
if require_osx_version "10.13"; then
hash="${osx64_hash}"
pkg='macos_x86_64'
else
err_no_binary "${ARCH}, OS X < 10.13"
fi
;;
's390x' )
hash="${s390x_hash}"
;;
* )
err_no_binary "${ARCH}"
;;
esac
local basever="pypy${PYVER}-v${VERSION}"
local baseurl="https://downloads.python.org/pypy/${basever}"
# result - command, package dir, url+hash
echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}"
}
# determine command, package directory, url+hash
declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")"
# install
${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,14 @@
VERSION='7.3.12'
PYVER='2.7'
# https://www.pypy.org/checksums.html
hash=dd61d88da274c2ce2cec77667d4a3df9a652bcc50e26f90991d4dd0af66bccf4
### end of manual settings - following lines same for every download
ver="pypy${PYVER}-v${VERSION}-src"
url="https://downloads.python.org/pypy/${ver}.tar.bz2"
prefer_openssl11
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,81 @@
VERSION='7.3.12'
PYVER='3.10'
# https://www.pypy.org/checksums.html
aarch64_hash=26208b5a134d9860a08f74cce60960005758e82dc5f0e3566a48ed863a1f16a1
linux32_hash=811667825ae58ada4b7c3d8bc1b5055b9f9d6a377e51aedfbe0727966603f60e
linux64_hash=6c577993160b6f5ee8cab73cd1a807affcefafe2f7441c87bd926c10505e8731
osarm64_hash=45671b1e9437f95ccd790af10dbeb57733cca1ed9661463b727d3c4f5caa7ba0
osx64_hash=dbc15d8570560d5f79366883c24bc42231a92855ac19a0f28cb0adeb11242666
s390x_hash=043c13a585479428b463ab69575a088db74aadc16798d6e677d97f563585fee3
### end of manual settings - following lines same for every download
function err_no_binary {
local archmsg="${1}"
local ver="pypy${PYVER}-v${VERSION}-src"
local url="https://downloads.python.org/pypy/${ver}.tar.bz2"
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for ${archmsg}."
echo "try '${url}' to build from source."
echo
} >&2
exit 1
}
function pypy_pkg_data {
# pypy architecture tag
local ARCH="${1}"
# defaults
local cmd='install_package' # use bz2
local pkg="${ARCH}" # assume matches
local ext='tar.bz2'
local hash='' # undefined
# select the hash, fix pkg if not match ARCH
case "${ARCH}" in
'linux-aarch64' )
hash="${aarch64_hash}"
pkg='aarch64'
;;
'linux' )
hash="${linux32_hash}"
pkg='linux32'
;;
'linux64' )
hash="${linux64_hash}"
;;
'osarm64' )
hash="${osarm64_hash}"
pkg='macos_arm64'
;;
'osx64' )
if require_osx_version "10.13"; then
hash="${osx64_hash}"
pkg='macos_x86_64'
else
err_no_binary "${ARCH}, OS X < 10.13"
fi
;;
's390x' )
hash="${s390x_hash}"
;;
* )
err_no_binary "${ARCH}"
;;
esac
local basever="pypy${PYVER}-v${VERSION}"
local baseurl="https://downloads.python.org/pypy/${basever}"
# result - command, package dir, url+hash
echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}"
}
# determine command, package directory, url+hash
declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")"
# install
${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,14 @@
VERSION='7.3.12'
PYVER='3.10'
# https://www.pypy.org/checksums.html
hash=86e4e4eacc36046c6182f43018796537fe33a60e1d2a2cc6b8e7f91a5dcb3e42
### end of manual settings - following lines same for every download
ver="pypy${PYVER}-v${VERSION}-src"
url="https://downloads.python.org/pypy/${ver}.tar.bz2"
prefer_openssl11
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,81 @@
VERSION='7.3.12'
PYVER='3.9'
# https://www.pypy.org/checksums.html
aarch64_hash=e9327fb9edaf2ad91935d5b8563ec5ff24193bddb175c1acaaf772c025af1824
linux32_hash=aa04370d38f451683ccc817d76c2b3e0f471dbb879e0bd618d9affbdc9cd37a4
linux64_hash=84c89b966fab2b58f451a482ee30ca7fec3350435bd0b9614615c61dc6da2390
osarm64_hash=0e8a1a3468b9790c734ac698f5b00cc03fc16899ccc6ce876465fac0b83980e3
osx64_hash=64f008ffa070c407e5ef46c8256b2e014de7196ea5d858385861254e7959f4eb
s390x_hash=20d84658a6899bdd2ca35b00ead33a2f56cff2c40dce1af630466d27952f6d4f
### end of manual settings - following lines same for every download
function err_no_binary {
local archmsg="${1}"
local ver="pypy${PYVER}-v${VERSION}-src"
local url="https://downloads.python.org/pypy/${ver}.tar.bz2"
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for ${archmsg}."
echo "try '${url}' to build from source."
echo
} >&2
exit 1
}
function pypy_pkg_data {
# pypy architecture tag
local ARCH="${1}"
# defaults
local cmd='install_package' # use bz2
local pkg="${ARCH}" # assume matches
local ext='tar.bz2'
local hash='' # undefined
# select the hash, fix pkg if not match ARCH
case "${ARCH}" in
'linux-aarch64' )
hash="${aarch64_hash}"
pkg='aarch64'
;;
'linux' )
hash="${linux32_hash}"
pkg='linux32'
;;
'linux64' )
hash="${linux64_hash}"
;;
'osarm64' )
hash="${osarm64_hash}"
pkg='macos_arm64'
;;
'osx64' )
if require_osx_version "10.13"; then
hash="${osx64_hash}"
pkg='macos_x86_64'
else
err_no_binary "${ARCH}, OS X < 10.13"
fi
;;
's390x' )
hash="${s390x_hash}"
;;
* )
err_no_binary "${ARCH}"
;;
esac
local basever="pypy${PYVER}-v${VERSION}"
local baseurl="https://downloads.python.org/pypy/${basever}"
# result - command, package dir, url+hash
echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}"
}
# determine command, package directory, url+hash
declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")"
# install
${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -0,0 +1,14 @@
VERSION='7.3.12'
PYVER='3.9'
# https://www.pypy.org/checksums.html
hash=e7a2046c7e6c25fc386abbb5132e92a7cc2491e3935699a946cb5dcbb342c2aa
### end of manual settings - following lines same for every download
ver="pypy${PYVER}-v${VERSION}-src"
url="https://downloads.python.org/pypy/${ver}.tar.bz2"
prefer_openssl11
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip'

View File

@@ -62,7 +62,7 @@ assert_build_log() {
cached_tarball "yaml-0.1.6"
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Linux'; done
for i in {1..10}; do stub uname '-s : echo Linux'; done
stub brew false
stub_make_install
stub_make_install
@@ -89,7 +89,7 @@ OUT
cached_tarball "yaml-0.1.6"
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Linux'; done
for i in {1..10}; do stub uname '-s : echo Linux'; done
stub brew false
stub_make_install
stub_make_install
@@ -119,7 +119,7 @@ OUT
cached_tarball "yaml-0.1.6"
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Linux'; done
for i in {1..10}; do stub uname '-s : echo Linux'; done
stub brew false
stub_make_install
stub_make_install
@@ -151,7 +151,7 @@ OUT
BREW_PREFIX="$TMP/homebrew-prefix"
mkdir -p "$BREW_PREFIX"
for i in {1..8}; do stub uname '-s : echo Darwin'; done
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
stub brew "--prefix : echo '$BREW_PREFIX'" false
stub_make_install
@@ -179,10 +179,10 @@ OUT
brew_libdir="$TMP/homebrew-yaml"
mkdir -p "$brew_libdir"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
stub brew "--prefix libyaml : echo '$brew_libdir'"
for i in {1..4}; do stub brew false; done
for i in {1..5}; do stub brew false; done
stub_make_install
install_fixture definitions/needs-yaml
@@ -205,7 +205,7 @@ OUT
cached_tarball "yaml-0.1.6"
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Linux'; done
for i in {1..10}; do stub uname '-s : echo Linux'; done
stub brew true; brew
stub_make_install
stub_make_install
@@ -234,11 +234,11 @@ OUT
readline_libdir="$TMP/homebrew-readline"
mkdir -p "$readline_libdir"
for i in {1..7}; do stub uname '-s : echo Darwin'; done
for i in {1..8}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
for i in {1..2}; do stub brew false; done
stub brew "--prefix readline : echo '$readline_libdir'"
stub brew false
for i in {1..2}; do stub brew false; done
stub_make_install
run_inline_definition <<DEF
@@ -259,6 +259,68 @@ make install
OUT
}
@test "ncurses is linked from Homebrew" {
cached_tarball "Python-3.6.2"
ncurses_libdir="$TMP/homebrew-ncurses"
mkdir -p "$ncurses_libdir"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
for i in {1..3}; do stub brew false; done
stub brew "--prefix ncurses : echo '$ncurses_libdir'"
stub brew false
stub_make_install
run_inline_definition <<DEF
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
DEF
assert_success
unstub uname
unstub sw_vers
unstub brew
unstub make
assert_build_log <<OUT
Python-3.6.2: CPPFLAGS="-I$ncurses_libdir/include -I${TMP}/install/include" LDFLAGS="-L$ncurses_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
make -j 2
make install
OUT
}
@test "openssl is linked from Ports in FreeBSD if present" {
cached_tarball "Python-3.6.2"
for i in {1..7}; do stub uname '-s : echo FreeBSD'; done
stub uname '-r : echo 11.0-RELEASE'
for i in {1..3}; do stub uname '-s : echo FreeBSD'; done
stub sysctl '-n hw.ncpu : echo 1'
stub pkg "info -e openssl : true"
for in in {1..2}; do stub pkg false; done
stub_make_install
export -n MAKE_OPTS
run_inline_definition <<DEF
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
DEF
assert_success
unstub uname
unstub make
unstub pkg
unstub sysctl
assert_build_log <<OUT
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-openssl=/usr/local
make -j 1
make install
OUT
}
@test "readline and sqlite3 are linked from Ports in FreeBSD" {
cached_tarball "Python-3.6.2"
@@ -266,9 +328,10 @@ OUT
for i in {1..7}; do stub uname '-s : echo FreeBSD'; done
stub uname '-r : echo 11.0-RELEASE'
for i in {1..2}; do stub uname '-s : echo FreeBSD'; done
for i in {1..3}; do stub uname '-s : echo FreeBSD'; done
stub sysctl '-n hw.ncpu : echo 1'
stub pkg false
stub pkg "$([[ $lib == readline ]] && echo "info -e $lib : true" || echo false)"
if [[ $lib == sqlite3 ]]; then stub pkg "info -e $lib : true"; fi
@@ -298,7 +361,7 @@ OUT
@test "no library searches performed during normal operation touch homebrew in non-MacOS" {
cached_tarball "Python-3.6.2"
for i in {1..8}; do stub uname '-s : echo Linux'; done
for i in {1..9}; do stub uname '-s : echo Linux'; done
stub brew true; brew
stub_make_install
@@ -353,10 +416,10 @@ OUT
mkdir -p "$readline_libdir/include/readline"
touch "$readline_libdir/include/readline/rlconf.h"
for i in {1..7}; do stub uname '-s : echo Darwin'; done
for i in {1..8}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
for i in {1..3}; do stub brew false; done
for i in {1..4}; do stub brew false; done
stub_make_install
export PYTHON_CONFIGURE_OPTS="CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib"
@@ -385,12 +448,12 @@ OUT
mkdir -p "$tcl_tk_libdir/lib"
echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
stub brew false
for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done
for i in {1..2}; do stub brew false; done
for i in {1..3}; do stub brew false; done
stub_make_install
@@ -419,10 +482,10 @@ OUT
tcl_tk_version_long="8.6.10"
tcl_tk_version="${tcl_tk_version_long%.*}"
for i in {1..8}; do stub uname '-s : echo Darwin'; done
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
for i in {1..4}; do stub brew false; done
for i in {1..5}; do stub brew false; done
stub_make_install
export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${TMP}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'"
@@ -447,7 +510,7 @@ OUT
@test "tcl-tk is linked from Homebrew via pkgconfig only when envvar is set" {
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
tcl_tk_libdir="$TMP/homebrew-tcl-tk"
@@ -455,7 +518,7 @@ OUT
stub brew false
for i in {1..2}; do stub brew "--prefix tcl-tk : echo '${tcl_tk_libdir}'"; done
for i in {1..2}; do stub brew false; done
for i in {1..3}; do stub brew false; done
stub_make_install
@@ -480,7 +543,7 @@ OUT
@test "number of CPU cores defaults to 2" {
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done
stub sysctl false
@@ -507,7 +570,7 @@ OUT
@test "number of CPU cores is detected on Mac" {
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done
stub sysctl '-n hw.ncpu : echo 4'
@@ -537,8 +600,8 @@ OUT
for i in {1..7}; do stub uname '-s : echo FreeBSD'; done
stub uname '-r : echo 11.0-RELEASE'
for i in {1..2}; do stub uname '-s : echo FreeBSD'; done
for i in {1..2}; do stub pkg false; done
for i in {1..3}; do stub uname '-s : echo FreeBSD'; done
for i in {1..3}; do stub pkg false; done
stub sysctl '-n hw.ncpu : echo 1'
stub_make_install
@@ -564,7 +627,7 @@ OUT
@test "setting PYTHON_MAKE_INSTALL_OPTS to a multi-word string" {
cached_tarball "Python-3.6.2"
for i in {1..8}; do stub uname '-s : echo Linux'; done
for i in {1..9}; do stub uname '-s : echo Linux'; done
stub_make_install
@@ -588,7 +651,7 @@ OUT
@test "(PYTHON_)CONFIGURE_OPTS and (PYTHON_)MAKE_OPTS take priority over automatically added options" {
cached_tarball "Python-3.6.2"
for i in {1..8}; do stub uname '-s : echo Linux'; done
for i in {1..9}; do stub uname '-s : echo Linux'; done
stub_make_install
@@ -616,7 +679,7 @@ OUT
@test "--enable-shared is not added if --disable-shared is passed" {
cached_tarball "Python-3.6.2"
for i in {1..8}; do stub uname '-s : echo Linux'; done
for i in {1..9}; do stub uname '-s : echo Linux'; done
stub_make_install
@@ -640,9 +703,9 @@ OUT
@test "configuring with dSYM in MacOS" {
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done
for i in {1..4}; do stub brew false; done
for i in {1..5}; do stub brew false; done
stub_make_install
run_inline_definition <<DEF
@@ -667,7 +730,7 @@ OUT
@test "configuring with dSYM has no effect in non-MacOS" {
cached_tarball "Python-3.6.2"
for i in {1..9}; do stub uname '-s : echo Linux'; done
for i in {1..10}; do stub uname '-s : echo Linux'; done
stub_make_install
run_inline_definition <<DEF
@@ -702,7 +765,7 @@ OUT
stub uname "-s : echo FreeBSD" "-r : echo 9.1"
for i in {1..6}; do stub uname "-s : echo FreeBSD"; done
stub uname "-r : echo 9.1"
for i in {1..2}; do stub uname "-s : echo FreeBSD"; done
for i in {1..3}; do stub uname "-s : echo FreeBSD"; done
MAKE=gmake stub_make_install
@@ -719,7 +782,7 @@ OUT
stub uname "-s : echo FreeBSD" "-r : echo 10.0-RELEASE"
for i in {1..6}; do stub uname "-s : echo FreeBSD"; done
stub uname "-r : echo 10.0-RELEASE"
for i in {1..2}; do stub uname "-s : echo FreeBSD"; done
for i in {1..3}; do stub uname "-s : echo FreeBSD"; done
stub_make_install
@@ -735,7 +798,7 @@ OUT
stub uname "-s : echo FreeBSD" "-r : echo 11.0-RELEASE"
for i in {1..6}; do stub uname "-s : echo FreeBSD"; done
stub uname "-r : echo 11.0-RELEASE"
for i in {1..2}; do stub uname "-s : echo FreeBSD"; done
for i in {1..3}; do stub uname "-s : echo FreeBSD"; done
stub_make_install
@@ -754,7 +817,7 @@ apply -p1 -i /my/patch.diff
exec ./configure "\$@"
CONF
for i in {1..8}; do stub uname '-s : echo Linux'; done
for i in {1..9}; do stub uname '-s : echo Linux'; done
stub apply 'echo apply "$@" >> build.log'
stub_make_install

View File

@@ -69,7 +69,7 @@ DEF
mkdir -p "$INSTALL_ROOT"
cd "$INSTALL_ROOT"
for i in {1..9}; do stub uname '-s : echo Darwin'; done
for i in {1..10}; do stub uname '-s : echo Darwin'; done
for i in {1..3}; do stub sw_vers '-productVersion : echo 10.10'; done
stub cc 'false'

View File

@@ -89,7 +89,7 @@ install_tmp_fixture() {
}
resolve_link() {
$(type -P greadlink readlink | head -1) "$1"
$(type -P greadlink readlink | head -n1) "$1"
}
run_inline_definition_with_name() {
@@ -200,7 +200,7 @@ OUT
assert_success
assert_build_log <<OUT
python -s -m ensurepip
python -I -m ensurepip
OUT
}
@@ -218,7 +218,7 @@ OUT
assert_success
assert_build_log <<OUT
python -s -m ensurepip --altinstall
python -I -m ensurepip --altinstall
OUT
}
@@ -325,7 +325,7 @@ EOS
cached_tarball "Python-3.6.2"
for i in {1..4}; do stub brew false; done
for i in {1..7}; do stub uname '-s : echo Linux'; done
for i in {1..8}; do stub uname '-s : echo Linux'; done
stub "$MAKE" \
" : echo \"$MAKE \$@\" >> build.log" \
" : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'"
@@ -393,6 +393,14 @@ OUT
assert_success
}
@test "use the custom GET_PIP_URL for 2.7 versions" {
run_inline_definition_with_name --name=2.7 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/2.7/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for 3.2 versions" {
run_inline_definition_with_name --name=3.2 <<OUT
echo "\${GET_PIP_URL}"
@@ -408,3 +416,51 @@ OUT
assert_output "https://bootstrap.pypa.io/pip/3.3/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for 3.4 versions" {
run_inline_definition_with_name --name=3.4 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/3.4/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for 3.5 versions" {
run_inline_definition_with_name --name=3.5 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/3.5/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for 3.6 versions" {
run_inline_definition_with_name --name=3.6 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/3.6/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for pypy2.7 versions" {
run_inline_definition_with_name --name=pypy2.7-7.3.12 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/2.7/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for pypy3.5 versions" {
run_inline_definition_with_name --name=pypy3.5-7.0.0 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/3.5/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for pypy3.6 versions" {
run_inline_definition_with_name --name=pypy3.6-7.3.3 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/pip/3.6/get-pip.py"
assert_success
}

View File

@@ -133,7 +133,7 @@ assert_output_contains() {
echo "assert_output_contains needs an argument" >&2
return 1
fi
echo "$output" | $(type -P ggrep grep | head -1) -F "$expected" >/dev/null || {
echo "$output" | $(type -P ggrep grep | head -n1) -F "$expected" >/dev/null || {
{ echo "expected output to contain $expected"
echo "actual: $output"
} | flunk

View File

@@ -3,7 +3,7 @@
load test_helper
bats_bin="${BATS_TEST_DIRNAME}/../bin/python-build"
static_version="$(grep VERSION "$bats_bin" | head -1 | cut -d'"' -f 2)"
static_version="$(grep VERSION "$bats_bin" | head -n1 | cut -d'"' -f 2)"
@test "python-build static version" {
stub git 'echo "ASPLODE" >&2; exit 1'

View File

@@ -35,7 +35,7 @@ make_shims() {
deregister_conda_shims() {
# adapted for Bash 4.x's associative array (#1749)
if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) \-A'; then
if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) -A'; then
for shim in ${!registered_shims[*]}; do
if conda_shim "${shim}" 1>&2; then
unset registered_shims[${shim}]

View File

@@ -238,11 +238,13 @@ OUT
@test "non-bare output shows symlink contents" {
create_version "1.9.0"
create_alias "link" "foo/bar"
create_alias "link" "1.9.0"
run pyenv-versions
assert_success <<OUT
assert_success
assert_output <<OUT
* system (set by ${PYENV_ROOT}/version)
1.9.0
link --> foo/bar
link --> 1.9.0
OUT
}