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

Compare commits

...

152 Commits

Author SHA1 Message Date
Josh Friend
3f39e8a944 v1.2.9 2019-01-10 08:19:47 -05:00
Yamashita, Yuu
337b92d95d Merge pull request #1263 from jwilk-forks/python3.3.7-sslv3
Add OPENSSL_NO_SSL3 patch for 3.3.7
2019-01-08 12:11:29 +09:00
Jakub Wilk
781db9bb8c Add OPENSSL_NO_SSL3 patch for 3.3.7 2019-01-07 18:33:40 +01:00
Yamashita, Yuu
775a4b6379 Merge pull request #1260 from adithyabsk/ironpython_dev
Update ironpython development install location
2018-12-28 09:11:03 +09:00
Adithya Balaji
22b7de95d6 Update ironpython development install location 2018-12-27 17:59:43 -05:00
Yamashita, Yuu
0e3e812aa8 Merge pull request #1259 from anton-petrov/add-anaconda-2018.12
Added new Anaconda 2018.12 installers.
2018-12-27 14:54:34 +09:00
Anton Petrov
962fdd974d Added new Anaconda 2018.12 installers.
new file:   plugins/python-build/share/python-build/anaconda2-2018.12
new file:   plugins/python-build/share/python-build/anaconda3-2018.12

Close #123
2018-12-27 08:41:39 +03:00
Yamashita, Yuu
f07184b34c Merge pull request #1256 from ipfans/master
Add CPython 3.7.2 and CPython 3.6.8
2018-12-25 08:24:52 +09:00
ipfans
b246ba437f CPython 3.6.8 2018-12-24 23:23:52 +08:00
ipfans
bdd58ff278 CPython 3.7.2 2018-12-24 23:22:35 +08:00
Yamashita, Yuu
ec9fb5492b Merge pull request #1248 from neersighted/ls-definitions
Use ls instead of find to list definitions
2018-11-26 09:16:47 +09:00
Bjorn Neergaard
cc35fbd0b8 Use ls instead of find to list definitions 2018-11-25 12:31:17 -07:00
Yamashita, Yuu
dd523b706d Merge pull request #1246 from binbjz/master
python-build: add anaconda[23]-5.3.1
2018-11-24 22:25:37 +09:00
ZhaoBin
0c69fc9501 update sha256 2018-11-24 20:24:08 +08:00
ZhaoBin
e302f0d443 add anaconda[23]-5.3.1 2018-11-24 19:16:39 +08:00
Josh Friend
80414b1b5b v1.2.8 2018-10-30 09:42:16 -04:00
Yamashita, Yuu
e389c8d906 Merge pull request #1234 from alanyee/master
Update README.md
2018-10-30 14:49:54 +09:00
Alan Yee
cd7c8af487 Update README.md
Replace OS X with macOS
2018-10-29 22:02:21 -07:00
Josh Friend
835707da22 CPython 3.6.7 and 3.7.1 2018-10-20 17:38:55 -04:00
Yamashita, Yuu
ee7b974160 Merge pull request #1228 from purificant/3.7.1rc2_url
amend 3.7.1rc2 url
2018-10-14 20:46:12 +09:00
purificant
62213bbfff amend 3.7.1rc2 url 2018-10-14 11:35:26 +01:00
Josh Friend
75ca7613ad CPython 3.6.7rc2 and 3.7.1rc2 2018-10-13 18:28:04 -04:00
Josh Friend
21c75c19e3 Add CPython 3.7.1rc1 2018-10-02 09:11:39 -04:00
Josh Friend
99346da8eb Add CPython 3.6.7rc1 2018-10-02 09:11:24 -04:00
Yamashita, Yuu
1a276f2d78 Merge pull request #1220 from shoichiaizawa/add-anaconda-5.3.0
python-build: add anaconda[23]-5.3.0
2018-10-02 09:25:43 +09:00
Shoichi Aizawa
650d9bd652 python-build: add anaconda[23]-5.3.0 2018-10-01 09:32:28 +09:00
Yamashita, Yuu
5603eb51c9 Merge pull request #1209 from altendky/patch-1
Add readme step for installing build deps per wiki
2018-08-28 23:32:50 +09:00
Kyle Altendorf
c6e3f95f67 Add readme step for installing build deps per wiki 2018-08-28 10:25:51 -04:00
rhymes
7190216884 #1199 introduced Python 3.5.6 not 3.7 (#1200) 2018-08-12 08:33:02 -04:00
Josh Friend
b7eea9003b v1.2.7 2018-08-11 14:41:04 -04:00
Josh Friend
1e96b2c321 Add CPython 3.5.6
Closes #1199
2018-08-11 14:40:09 -04:00
Josh Friend
0bdae9fd9d Add CPython 3.4.9 2018-08-11 14:37:41 -04:00
Josh Friend
9c7bdbc5e2 Remove old RC 2018-08-11 14:37:25 -04:00
Yamashita, Yuu
97f244fbb5 v1.2.6 2018-07-18 06:39:28 +00:00
Yamashita, Yuu
c057a80c82 Merge pull request #1180 from LWisteria/wget_version_check
Check wget version iff wget is going to be used (again)
2018-07-03 09:35:28 +09:00
LWisteria
0e3f04c429 Check wget version iff wget is going to be used
reapplying 4ebba7cd5f , which is (accidently?) reverted by fc90785f75
2018-06-29 14:55:32 +09:00
Yamashita, Yuu
3de7c5f298 Merge pull request #1178 from rhymes/python366
Added CPython 3.6.6
2018-06-28 17:52:26 +09:00
rhymes
996a2d12a5 Added CPython 3.6.6 2018-06-28 10:04:27 +02:00
Josh Friend
4812e0387b v1.2.5 2018-06-27 19:21:18 -04:00
Josh Friend
334e413722 Remove 3.5.5rc1 2018-06-27 19:16:40 -04:00
Josh Friend
2f1fb3a6e1 Remove 3.7.0rc1
fixes #1177
2018-06-27 19:15:15 -04:00
Pascal van Kooten
d48a954c6c Add CPython 3.7.0 2018-06-27 19:03:52 -04:00
Robin Message
d08c9cfb36 Language tweaks to PULL_REQUEST_TEMPLATE.md (#1173) 2018-06-21 10:11:00 -04:00
Josh Friend
43235c2716 CPython 3.7.0rc1 and 3.6.6rc1 2018-06-12 23:06:54 -04:00
Yamashita, Yuu
cbf3983ac5 Merge pull request #1166 from tsahara/openbsd-does-not-have-seq
seq(1) is not available on OpenBSD.
2018-06-06 09:42:26 +09:00
Tomoyuki Sahara
9c1d677d23 seq(1) is not available on OpenBSD. 2018-06-01 15:11:01 +09:00
Yamashita, Yuu
eee72eecdf Merge pull request #1165 from shoichiaizawa/add-anaconda-5.2.0
python-build: add anaconda[23]-5.2.0
2018-06-01 10:52:08 +09:00
Shoichi Aizawa
09494e3943 python-build: add anaconda[23]-5.2.0 2018-06-01 00:57:28 +09:00
Josh Friend
8eeddaebc1 CPython 3.7.0b5 2018-05-31 08:34:08 -04:00
Ville Skyttä
dad0fc708a Add micropython 1.9.4 (#1160) 2018-05-20 16:24:11 -04:00
Josh Friend
a2d51328ee CPython 3.7.0b4 2018-05-07 08:25:52 -04:00
Josh Friend
3faba7d47c v1.2.4 2018-05-01 13:51:00 -04:00
Josh Friend
3f8ea04cc2 Add pypy-portable 6.0.0
closes #1154
2018-05-01 13:45:59 -04:00
Josh Friend
f7a3ffd2d8 CPython 2.7.15 2018-05-01 01:14:42 -04:00
Yamashita, Yuu
df0437f111 Merge pull request #1145 from pyenv/rehash-wait
Wait rehash until lock acquisition
2018-05-01 09:37:03 +09:00
Yamashita, Yuu
d6ba379e08 Merge pull request #1146 from pyenv/http-client-based-on-envvar
Allow overriding HTTP client type based on environment variable
2018-05-01 09:34:24 +09:00
Josh Friend
47436606b5 Add pypy 6.0.0 2018-04-27 18:16:14 -04:00
Yamashita, Yuu
b3ba0fd7e3 Refactor test code of python-build. Use curl during tests by default 2018-04-26 02:06:57 +00:00
Yamashita, Yuu
750c63c643 Merge pull request #1151 from pyenv/ruby-build-20180424
Import latest changes from https://github.com/rbenv/ruby-build as of v20180424
2018-04-26 10:31:38 +09:00
Yamashita, Yuu
c8ad3385c7 Import latest changes from https://github.com/rbenv/ruby-build as of v20180424 2018-04-26 00:56:08 +00:00
Yamashita, Yuu
11067155f4 Merge pull request #1147 from zbentley/fix_bundle_loader_for_new_osx
Address #273 via a patch from python#21811
2018-04-25 10:11:54 +09:00
Zac Bentley
18df84f535 Address #273 via a patch from python#21811 2018-04-24 13:14:18 -04:00
Yamashita, Yuu
098fb9f07a Rewrite python-build tests with using PYTHON_BUILD_HTTP_CLIENT 2018-04-24 05:22:32 +00:00
Yamashita, Yuu
fc90785f75 Allow overriding HTTP client type based on environment variable PYTHON_BUILD_HTTP_CLIENT (#1126) 2018-04-24 02:33:43 +00:00
Yamashita, Yuu
1ec57a0c68 Add basic test for rehash wait 2018-04-24 00:42:47 +00:00
Yamashita, Yuu
7973e59473 Fix rehash test to give up sooner after lock file's presence 2018-04-24 00:38:01 +00:00
Yamashita, Yuu
b1e3f13a85 Renamed variable; s/PYENV_REHASH_LOCK_TIMEOUT/PYENV_REHASH_TIMEOUT/ 2018-04-24 00:35:55 +00:00
Yamashita, Yuu
a6c15fb242 Experimental implementation to wait rehash until acquiring lock
For now the code is using traditional pseudo locking mechanism
based on `noclobber`.
2018-04-19 01:02:16 +00:00
Yamashita, Yuu
63c4b7f45c Merge pull request #1140 from fschulze/2.7.15rc1
Add Python 2.7.15rc1.
2018-04-15 19:51:09 +09:00
Florian Schulze
20e4f53aac Add Python 2.7.15rc1. 2018-04-15 12:40:30 +02:00
Yamashita, Yuu
35f7ef8708 Merge pull request #1133 from pyenv/rbenv-20180402
Import changes from rbenv as of 20180402
2018-04-05 16:47:20 +09:00
Yamashita, Yuu
83429344ea Rewrite some tests for pyenv which was recently imported from rbenv 2018-04-02 01:52:42 +00:00
Yamashita, Yuu
83f97ef2b3 Merge remote-tracking branch 'rbenv/master' into rbenv-20180402 2018-04-02 01:46:48 +00:00
Josh Friend
b960f863cc CPython 3.7.0b2 -> b3 2018-03-30 15:04:29 -04:00
Yamashita, Yuu
a41d7561d0 Merge pull request #1131 from pyenv/workaround-get-pip-url-py26-py32
Use custom get-pip URL based on the target version
2018-03-29 12:19:46 +09:00
Yamashita, Yuu
980b03b582 Update warning message on presence of PIP_VERSION 2018-03-29 03:16:53 +00:00
Yamashita, Yuu
f3aba64a84 Merge pull request #1132 from pyenv/fix-typo-in-pr-template
Fixed a typo in PR template
2018-03-29 10:18:07 +09:00
Yamashita, Yuu
fc33f674b4 s/Generaly/Generally/ 😞 2018-03-29 01:14:19 +00:00
Yamashita, Yuu
f5663f084a Show some warning on the use of PIP_VERSION 2018-03-29 00:58:17 +00:00
Yamashita, Yuu
a1d39c1e25 Add test for custom GET_PIP_URL per versions 2018-03-29 00:58:06 +00:00
Yamashita, Yuu
90dfb261e2 Use custom get-pip URL based on the target version (#1127) 2018-03-29 00:38:16 +00:00
Joe Siewert
367c6765ab Modify changelog to indicate CPython 3.6.5 (#1130) 2018-03-28 20:15:40 -04:00
Josh Friend
abbb606041 v1.2.3 2018-03-28 18:22:17 -04:00
Josh Friend
359aa1f4c6 Add CPython 3.6.5 2018-03-28 18:18:56 -04:00
Yamashita, Yuu
b95d0d9542 Merge pull request #1128 from pyenv/pip-version-workaround2
Refactoring around `GET_PIP_URL`
2018-03-22 11:04:33 +09:00
Yamashita, Yuu
15ff779eb5 Refactoring
Manage `GET_PIP_URL` value at single place for readability.
2018-03-22 01:34:44 +00:00
Yamashita, Yuu
f35aea984f Merge pull request #1123 from pyenv/github-issue-templates
Add template for issues and pull requests
2018-03-22 09:37:25 +09:00
Daniel Hahler
806b9384a1 Update PULL_REQUEST_TEMPLATE.md
revisited
2018-03-20 21:40:02 +01:00
Daniel Hahler
5861aee062 Update ISSUE_TEMPLATE.md
revisited
2018-03-20 21:37:40 +01:00
Yamashita, Yuu
967d9b6a1b Merge pull request #1124 from pyenv/pip-version-workaround
Unset `PIP_VERSION` before invoking `get-pip.py` as a workaround for `invalid truth value` error
2018-03-20 13:23:51 +09:00
Yamashita, Yuu
ed2d2a921e Unset PIP_VERSION before invoking get-pip.py as a workaround for invalid truth value error (pyenv/pyenv-installer#70) 2018-03-20 04:04:49 +00:00
Yamashita, Yuu
143e0be9fc Add template for issues and pull requests (#1116) 2018-03-20 01:44:57 +00:00
raimon
694b551935 Fix dead links in ToC (#1121) 2018-03-15 15:42:52 -04:00
Jens Hedegaard Nielsen
59846ca9b1 Set openssl PKG_CONFIG_PATH for python 3.7 (#1117) 2018-03-13 10:00:23 -04:00
Yamashita, Yuu
adbb59ed2c Merge pull request #1113 from timsavage/activepython
Support for ActivePython
2018-03-13 09:33:17 +09:00
Tim Savage
05143526f4 Added download source and SHA256 hashes 2018-03-12 14:44:57 +11:00
Tim Savage
296ce06d69 Added current ActivePython versions 2.7.14, 3.5.4, 3.6.0 2018-03-09 12:12:56 +11:00
Tim Savage
3daed2e517 Added entries to support installing ActivePython (linux) 2018-03-09 12:12:13 +11:00
Josh Friend
a8e207f330 v1.2.2 2018-02-28 16:32:37 -05:00
Josh Friend
5f74547379 CPython 3.7.0b1 -> 3.7.0b2 2018-02-28 16:24:58 -05:00
Mislav Marohnić
c8ba27fd07 Merge pull request #1069 from viclim/fix-issue-1065
Ignore empty `.ruby-version` files
2018-02-26 10:53:46 +01:00
Victor Lim
9daf81f16e Fix https://github.com/rbenv/rbenv/issues/1065
Command `rbenv version-name > .ruby-version` will create an empty `.ruby-version` file
before running `rbenv-version-file`. This causes `rbenv-version-file` to return empty
string which in turn causes `rbenv-version-name` to return `system`.

Ensure size of `.ruby-version` is non-zero as a workaround.
2018-02-26 16:49:37 +08:00
Yamashita, Yuu
23e1c5049f Merge pull request #1101 from Calinou/readme-use-markdown-image
Use Markdown image markup in README
2018-02-23 09:36:08 +09:00
Hugo Locurcio
7ca1923a44 Use Markdown image markup in README
This also fixes the aspect ratio of the image being incorrect.
2018-02-22 15:43:44 +01:00
Yamashita, Yuu
445d59ae2e Merge pull request #1100 from shoichiaizawa/add-anaconda-5.1.0
python-build: add anaconda[23]-5.1.0
2018-02-19 10:46:56 +09:00
Shoichi Aizawa
bc9687576e python-build: add anaconda[23]-5.1.0 2018-02-16 18:03:57 +09:00
Yamashita, Yuu
907a86b743 Merge pull request #1094 from claco/update-3.4.8
Correct CPython 3.4.8 Checksums
2018-02-09 13:13:02 +09:00
Christopher H. Laco
812f02662b Correct CPython 3.4.8 Checksums
The current checksums for tar.xz and .tgz files are reversed. This
causes python-build to fail with a checksum mismatch error.

Reversing the checksums to allow the build to succeed.
2018-02-08 22:40:04 -05:00
Yamashita, Yuu
5c0570cdc0 Merge pull request #1093 from charlesreid1/master
Improve screenshot in readme
2018-02-09 09:37:18 +09:00
Yamashita, Yuu
43c4063f51 Merge pull request #1091 from BanzaiMan/python-build-updates
Python-build updates
2018-02-09 09:33:52 +09:00
Charles Reid
aab718844a Changing background to be lighter/lower contrast 2018-02-08 16:10:37 -08:00
Charles Reid
59050aa093 Fixing image of terminal output to use carbon (cleaner and easier-to-read colors) 2018-02-08 16:08:24 -08:00
Hiro Asari
42349d9d24 Update 3.4.8rc1 to 3.4.8 release 2018-02-08 08:34:01 -05:00
Hiro Asari
2ba2d8797b Add 3.8-dev to point to master
Push 3.7-dev to `3.7` branch
2018-02-08 08:27:18 -05:00
Yamashita, Yuu
04d9342f82 Merge pull request #1090 from draeath/master
Add CPython 3.5.5
2018-02-08 09:38:09 +09:00
Paul Bransford
d85bc23592 Add CPython 3.5.5 2018-02-07 17:25:15 -05:00
INADA Naoki
f114557698 3.7.0a4 -> 3.7.0b1 (#1086) 2018-02-01 13:31:38 -05:00
Yamashita, Yuu
95ad305bcb Merge pull request #1084 from scop/pypy3-5.10.1
Add pypy3 5.10.1
2018-01-29 09:05:27 +09:00
Ville Skyttä
6c0625710f Add pypy3 5.10.1 2018-01-29 00:11:11 +02:00
Yamashita, Yuu
86e1b9a8ad Merge pull request #1082 from shoichiaizawa/add-clear-to-conda-blacklist
Do not create `clear` shim when Anaconda is installed
2018-01-26 15:17:19 +09:00
Shoichi Aizawa
b64c445b61 Do not create clear shim when Anaconda is installed
Add `clear` to the Anaconda's default blacklist in order to prevent
pyenv from creating the shim script for it.

The `clear` command executable began included from Anaconda 5.0.0
onwards, and this executable now conceals that of the user's base system
- this hinders the user from running the `clear` command with the
`command not found` error output if a user installs and selects one or
more Python version(s) other than Anaconda 5.x.x.

Adding this one-liner to the blacklist allows the user to use the
`clear` command even when Anaconda 5.x.x is not selected by pyenv.
2018-01-26 13:29:48 +09:00
Josh Friend
1864fd7b93 Add CPython 3.4.8rc1 and 3.5.5rc1 2018-01-23 10:13:57 -05:00
Josh Friend
6f27c91b5f Update CPython 3.7.0a3 -> 3.7.0a4 2018-01-12 18:56:44 -05:00
Mislav Marohnić
b943955dbf Merge pull request #981 from mhinz/shell-descriptive-error
Better error message for `rbenv shell`
2017-12-07 05:00:44 +01:00
Marco Hinz
643023d98f Add tests for shell integration 2017-12-07 02:32:35 +01:00
Marco Hinz
af53c790cc Better error message for rbenv shell
Shell integration is not enabled by default. This means that, from all the
commands from `rbenv commands`, only "shell" won't work right away.

Replace "no such command" with a more descriptive message that points to
`rbenv init` instead.
2017-12-07 02:32:34 +01:00
Mislav Marohnić
6aa70b6541 Merge pull request #1013 from blueyed/shellcheck
Fix some issues reported by shellcheck
2017-11-30 11:43:18 +01:00
Daniel Hahler
5f8a4c4d62 Fix some issues reported by shellcheck 2017-11-29 16:20:51 +01:00
Mislav Marohnić
eda952ab08 Merge branch 'cdpath-enable' 2017-11-29 15:53:41 +01:00
Mislav Marohnić
b80ea43e25 Quote directory name in variable assignment 2017-11-29 15:51:03 +01:00
Mislav Marohnić
c310bc5f83 Merge pull request #968 from maxnordlund/patch-1
Fix fish subcommand completion
2017-11-29 15:47:19 +01:00
Mislav Marohnić
eab68688dc Merge pull request #959 from zenspider/fix-dash-u
Fixed `rbenv init -` output to work w/ no args and bash's `set -u`.
2017-11-29 15:40:23 +01:00
Mislav Marohnić
5183e32887 Merge pull request #982 from MartinNowak/issue759
partly resolve #759
2017-11-29 15:37:22 +01:00
Mislav Marohnić
e2f469a7cd Merge pull request #1002 from blueyed/fix-which-tests-PATH
test/which.bats: do not export PATH
2017-11-29 15:25:03 +01:00
Mislav Marohnić
33a5c2495d Merge pull request #1003 from blueyed/version-file-skip-dirs
rbenv-version-file: ensure that the version file is a file
2017-11-29 15:23:58 +01:00
Mislav Marohnić
66b9f6fb2b Merge pull request #1024 from andyone/master
Fixed support for commas for all environment variables in configure script
2017-11-29 15:20:00 +01:00
Daniel Hahler
a9ca72ab8e test/which.bats: do not export PATH
Otherwise `sed` might not be found later in bats/libexec/bats-exec-test,
in case `/usr/bin` gets removed.
2017-11-20 04:22:05 +01:00
Ryan Davis
1a8b5e04a9 Fixed rbenv init - output to work w/ no args and bash's set -u. 2017-11-06 13:59:04 -08:00
Mislav Marohnić
2d7cefe782 Merge pull request #1034 from MinhThienDX/master
Fix URL fragment target
2017-09-04 18:57:27 +02:00
MinhThienDX
650c9d3452 Fix URL fragment target 2017-09-04 23:51:22 +07:00
Jeremy Daer
4ebd1bd12c Merge pull request #1009 from jeremy/homebrew-install-clarification
Clarify Homebrew/git install guidance
2017-08-23 14:47:56 -10:00
Anton Novojilov
dbaa8c83b6 Fixed support of build env vars for dynamic bash extension configure script 2017-08-07 13:12:37 +02:00
Mislav Marohnić
615f8443fe Merge pull request #1011 from kenaniah/patch-1
Properly escapes commas in c flags
2017-06-25 02:48:23 +02:00
Kenaniah Cerny
fc706daf60 properly escapes commas in cflags 2017-06-18 20:57:52 -07:00
Mislav Marohnić
6cd487db81 rbenv 1.1.1 2017-06-15 16:55:33 +02:00
Jeremy Daer
e3e99cc906 Clarify Homebrew/git install guidance
* Move Homebrew to the top, common case for new devs
* Note that `brew install rbenv` includes ruby-build by default
* Be clear that `rbenv init` instructions are needed for shell setup
* Be explicit about starting a new shell to pick up PATH/init changes
* Use rbenv-doctor to conclusively demonstrate correct setup
* Separate upgrade instructions for Homebrew vs Git installs

Related: https://github.com/rbenv/ruby-build/pull/1106
2017-06-14 09:02:50 -07:00
Daniel Hahler
95b1b05cbe rbenv-version-file: ensure that the version file is a file
Forwarded from https://github.com/pyenv/pyenv/pull/606.
2017-06-05 15:40:59 +02:00
Tim Pope
9d93605e18 Don't unset CDPATH 2017-04-05 17:39:39 -04:00
Tim Pope
1f1e291385 Enforce absolute RBENV_DIR
This prevents CDPATH from becoming an issue.

Closes #866.
2017-04-05 16:54:03 -04:00
Martin Nowak
db39044ef6 partly resolve #759
- some versions of bash (e.g. 4.3.11) complain about clobbering
  /dev/null, use bash's explicit >| operator to ignore noclober
- not sure if the original #759 report has the same cause
- https://github.com/rbenv/rbenv/issues/759#issuecomment-289326891
2017-03-27 02:06:13 +02:00
Max Nordlund
fab5cf912f Fix pyenv -> rbenv typo 2017-02-10 09:31:13 +01:00
Max Nordlund
9f52b56aa8 Fix fish subcommand completion
This allows subcommand style plugins to properly autocomplete.
Existing commands are not affected. 

Example, say you have support for `rbenv foo bar --flag`, then
this allows the last `--flag` argument to be properly completed.
2017-02-10 09:12:30 +01:00
65 changed files with 1042 additions and 131 deletions

21
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,21 @@
Too many issues will kill our team's development velocity, drastically.
Make sure you have checked all steps below.
### Prerequisite
* [ ] Make sure your problem is not listed in [the common build problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems).
* [ ] Make sure no duplicated issue has already been reported in [the pyenv issues](https://github.com/pyenv/pyenv/issues). You should look for closed issues, too.
* [ ] Make sure you are not asking us to help solving your specific issue.
* GitHub issues is opened mainly for development purposes. If you want to ask someone to help solving your problem, go to some community site like [Gitter](https://gitter.im/yyuu/pyenv), [StackOverflow](https://stackoverflow.com/questions/tagged/pyenv), etc.
* [ ] Make sure your problem is not derived from packaging (e.g. [Homebrew](https://brew.sh)).
* Please refer to the package documentation for the installation issues, etc.
* [ ] Make sure your problem is not derived from plugins.
* This repository is maintaining `pyenv` and the default `python-build` plugin only. Please refrain from reporting issues of other plugins here.
### Description
- [ ] Platform information (e.g. Ubuntu Linux 16.04):
- [ ] OS architecture (e.g. amd64):
- [ ] pyenv version:
- [ ] Python version:
- [ ] C Compiler information (e.g. gcc 7.3):
- [ ] Please attach verbose build log as gist
* You can turn on verbose debug logging using by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4`

16
.github/PULL_REQUEST_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,16 @@
Make sure you have checked all steps below.
### Prerequisite
* [ ] Please consider implementing the feature as a hook script or plugin as a first step.
* pyenv has some powerful support for plugins and hook scripts. Please refer to [Authoring plugins](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) for details and try to implement it as a plugin if possible.
* [ ] Please consider contributing the patch upstream to [rbenv](https://github.com/rbenv/rbenv), since we have borrowed most of the code from that project.
* We occasionally import the changes from rbenv. In general, you can expect changes made in rbenv will be imported to pyenv too, eventually.
* Generally speaking, we prefer not to make changes in the core in order to keep compatibility with rbenv.
* [ ] My PR addresses the following pyenv issue (if any)
- https://github.com/pyenv/pyenv/issues/XXXX
### Description
- [ ] Here are some details about my PR
### Tests
- [ ] My PR adds the following unit tests (if any)

View File

@@ -1,5 +1,59 @@
## Version History
## 1.2.9
* python-build: Add CPython 3.7.2 and CPython 3.6.8 (#1256)
* python-build: Add anaconda[23]-5.3.1 (#1246)
* python-build: Add Anaconda 2018.12 (#1259)
* python-build: Fix ironpython-dev git repo url (#1260)
* python-build: Add `OPENSSL_NO_SSL3` patch for CPython 3.3.7 (#1263)
## 1.2.8
* python-build: Add CPython 3.7.1
* python-build: Add CPython 3.6.7
* python-build: Add anaconda[23]-5.3.0 (#1220)
## 1.2.7
* python-build: Add CPython 3.5.6 (#1199)
* python-build: Add CPython 3.4.9
## 1.2.6
* python-build: Added CPython 3.6.6 (#1178)
* python-build: Check wget version iff wget is going to be used (#1180)
## 1.2.5
* python-build: Add CPython 3.7.0 (#1177)
* python-build: Add micropython 1.9.4 (#1160)
* python-build: Add anaconda[23]-5.2.0 (#1165)
* pyenv: Fix `seq(1)` is not available on OpenBSD (#1166)
## 1.2.4
* python-build: Add CPython 2.7.15
* python-build: Add PyPy 6.0.0
* python-build: Allow overriding HTTP client type based on environment variable `PYTHON_BUILD_HTTP_CLIENT` (#1126)
* python-build: Use version-specific `get-pip.py` when installing 2.6 and 3.2 (#1131)
* pyenv: Merge rbenv master (#1151)
* pyenv: Make `pyenv-rehash` safer for multiple processes (#1092)
## 1.2.3
* python-build: Add CPython 3.6.5
* python-build: Set openssl PKG_CONFIG_PATH for python 3.7 (#1117)
* python-build: Add ActivePython versions 2.7.14, 3.5.4, 3.6.0 (#1113)
* python-build: Unset `PIP_VERSION` before invoking `get-pip.py` as a workaround for `invalid truth value` error (#1124)
## 1.2.2
* python-build: Add PyPy3 5.10.1 (#1084)
* python-build: Add CPython 3.5.5 (#1090)
* python-build: Add Anaconda[23]-5.1.0 (#1100)
* python-build: Fix checksum issue for CPython 3.4.8 (#1094)
* python-build: Prevent Anaconda from installing a `clear` shim (#1084)
## 1.2.1
* python-build: Add CPython 3.6.4

View File

@@ -11,7 +11,7 @@ tools that do one thing well.
This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
[ruby-build](https://github.com/rbenv/ruby-build), and modified for Python.
<img src="https://i.gyazo.com/699a58927b77e46e71cd674c7fc7a78d.png" width="735" height="490" />
![Terminal output example](/terminal_output.png)
### pyenv _does..._
@@ -48,7 +48,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
* **[Installation](#installation)**
* [Basic GitHub Checkout](#basic-github-checkout)
* [Upgrading](#upgrading)
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
* [Homebrew on macOS](#homebrew-on-macos)
* [Advanced Configuration](#advanced-configuration)
* [Uninstalling Python Versions](#uninstalling-python-versions)
* **[Command Reference](#command-reference)**
@@ -167,7 +167,7 @@ We'd recommend to install pyenv-virtualenv as well if you have some plan to play
## Installation
If you're on Mac OS X, consider [installing with Homebrew](#homebrew-on-mac-os-x).
If you're on macOS, consider [installing with Homebrew](#homebrew-on-macos).
### The automatic installer
@@ -195,8 +195,8 @@ easy to fork and contribute any changes back upstream.
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
```
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu and Fedora note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu and Fedora note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
**Proxy note**: If you use a proxy, export `http_proxy` and `HTTPS_PROXY` too.
3. **Add `pyenv init` to your shell** to enable shims and autocompletion.
@@ -205,7 +205,7 @@ easy to fork and contribute any changes back upstream.
```sh
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
```
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu and Fedora note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
**General warning**: There are some systems where the `BASH_ENV` variable is configured
@@ -219,7 +219,12 @@ easy to fork and contribute any changes back upstream.
```sh
$ exec "$SHELL"
```
5. **Install Python versions into `$(pyenv root)/versions`.**
5. **Install Python build dependencies** before attempting to install a new Python version. The
[pyenv wiki](https://github.com/pyenv/pyenv/wiki) provides suggested installation packages
and commands for various operating systems.
6. **Install Python versions into `$(pyenv root)/versions`.**
For example, to download and install Python 2.7.8, run:
```sh
$ pyenv install 2.7.8
@@ -281,10 +286,10 @@ uninstall from the system.
brew uninstall pyenv
### Homebrew on Mac OS X
### Homebrew on macOS
You can also install pyenv using the [Homebrew](http://brew.sh)
package manager for Mac OS X.
You can also install pyenv using the [Homebrew](https://brew.sh)
package manager for macOS.
$ brew update
$ brew install pyenv
@@ -381,3 +386,11 @@ tracker](https://github.com/pyenv/pyenv/issues).
[pyenv-virtualenv]: https://github.com/pyenv/pyenv-virtualenv#readme
[hooks]: https://github.com/pyenv/pyenv/wiki/Authoring-plugins#pyenv-hooks
### Version History
See [CHANGELOG.md](CHANGELOG.md).
### License
[The MIT License](LICENSE)

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env bash
set -e
unset CDPATH
if [ "$1" = "--debug" ]; then
export PYENV_DEBUG=1
@@ -22,7 +21,8 @@ abort() {
if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then
abs_dirname() {
local path="$(realpath "$1")"
local path
path="$(realpath "$1")"
echo "${path%/*}"
}
else
@@ -69,6 +69,11 @@ if [ -z "${PYENV_DIR}" ]; then
export PYENV_DIR
unset PYENV_FILE_ARG
fi
else
[[ $PYENV_DIR == /* ]] || PYENV_DIR="$PWD/$PYENV_DIR"
cd "$PYENV_DIR" 2>/dev/null || abort "cannot change working directory to \`$PYENV_DIR'"
PYENV_DIR="$PWD"
cd "$OLDPWD"
fi
if [ -z "${PYENV_DIR}" ]; then
@@ -121,7 +126,13 @@ case "$command" in
;;
* )
command_path="$(command -v "pyenv-$command" || true)"
[ -n "$command_path" ] || abort "no such command \`$command'"
if [ -z "$command_path" ]; then
if [ "$command" == "shell" ]; then
abort "shell integration not enabled. Run \`pyenv init' for instructions."
else
abort "no such command \`$command'"
fi
fi
shift 1
if [ "$1" = --help ]; then

View File

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

View File

@@ -28,15 +28,15 @@ shopt -s nullglob
for command in "${path}/pyenv-"*; do
command="${command##*pyenv-}"
if [ -n "$sh" ]; then
if [ ${command:0:3} = "sh-" ]; then
echo ${command##sh-}
if [ "${command:0:3}" = "sh-" ]; then
echo "${command##sh-}"
fi
elif [ -n "$nosh" ]; then
if [ ${command:0:3} != "sh-" ]; then
echo ${command##sh-}
if [ "${command:0:3}" != "sh-" ]; then
echo "${command##sh-}"
fi
else
echo ${command##sh-}
echo "${command##sh-}"
fi
done
done

View File

@@ -42,6 +42,7 @@ extract_initial_comment_block() {
}
collect_documentation() {
# shellcheck disable=SC2016
$(type -p gawk awk | head -1) '
/^Summary:/ {
summary = substr($0, 10)
@@ -86,7 +87,8 @@ collect_documentation() {
}
documentation_for() {
local filename="$(command_path "$1")"
local filename
filename="$(command_path "$1")"
if [ -n "$filename" ]; then
extract_initial_comment_block < "$filename" | collect_documentation
fi
@@ -114,7 +116,7 @@ print_help() {
eval "$(documentation_for "$command")"
[ -n "$help" ] || help="$summary"
if [ -n "$usage" -o -n "$summary" ]; then
if [ -n "$usage" ] || [ -n "$summary" ]; then
if [ -n "$usage" ]; then
echo "$usage"
else

View File

@@ -138,7 +138,7 @@ esac
if [ "$shell" != "fish" ]; then
IFS="|"
cat <<EOS
command="\$1"
command="\${1:-}"
if [ "\$#" -gt 0 ]; then
shift
fi

View File

@@ -10,30 +10,51 @@ PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim"
# Create the shims directory if it doesn't already exist.
mkdir -p "$SHIM_PATH"
# Ensure only one instance of pyenv-rehash is running at a time by
# setting the shell's `noclobber` option and attempting to write to
# the prototype shim file. If the file already exists, print a warning
# to stderr and exit with a non-zero status.
set -o noclobber
{ echo > "$PROTOTYPE_SHIM_PATH"
} 2>/dev/null ||
{ if [ -w "$SHIM_PATH" ]; then
echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
else
echo "pyenv: cannot rehash: $SHIM_PATH isn't writable"
fi
exit 1
} >&2
set +o noclobber
acquire_lock() {
# Ensure only one instance of pyenv-rehash is running at a time by
# setting the shell's `noclobber` option and attempting to write to
# the prototype shim file. If the file already exists, print a warning
# to stderr and exit with a non-zero status.
local ret
set -o noclobber
echo > "$PROTOTYPE_SHIM_PATH" 2>| /dev/null || ret=1
set +o noclobber
[ -z "${ret}" ]
}
# If we were able to obtain a lock, register a trap to clean up the
# prototype shim when the process exits.
trap remove_prototype_shim EXIT
trap release_lock EXIT
remove_prototype_shim() {
rm -f "$PROTOTYPE_SHIM_PATH"
}
release_lock() {
remove_prototype_shim
}
if [ ! -w "$SHIM_PATH" ]; then
echo "pyenv: cannot rehash: $SHIM_PATH isn't writable"
exit 1
fi
unset acquired
for (( i=1; i<="${PYENV_REHASH_TIMEOUT:-60}"; i++ )); do
if acquire_lock 2>/dev/null; then
acquired=1
break
else
# POSIX sleep(1) doesn't provides time precision of subsecond
sleep 1
fi
done
if [ -z "${acquired}" ]; then
echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
exit 1
fi
# The prototype shim file is a script that re-execs itself, passing
# its filename and any arguments to `pyenv exec`. This file is
# hard-linked for every executable and then removed. The linking
@@ -83,7 +104,7 @@ remove_outdated_shims() {
list_executable_names() {
local version file
pyenv-versions --bare --skip-aliases | \
while read version; do
while read -r version; do
for file in "${PYENV_ROOT}/versions/${version}/bin/"*; do
echo "${file##*/}"
done
@@ -136,6 +157,7 @@ shopt -s nullglob
# executables.
create_prototype_shim
remove_outdated_shims
# shellcheck disable=SC2046
make_shims $(list_executable_names | sort -u)

View File

@@ -1,3 +1,3 @@
#!/usr/bin/env bash
# Summary: Display the root directory where versions and shims are kept
echo $PYENV_ROOT
echo "$PYENV_ROOT"

View File

@@ -20,7 +20,7 @@ fi
whence() {
local command="$1"
pyenv-versions --bare | while read version; do
pyenv-versions --bare | while read -r version; do
path="$(pyenv-prefix "$version")/bin/${command}"
if [ -x "$path" ]; then
[ "$print_paths" ] && echo "$path" || echo "$version"

View File

@@ -14,7 +14,7 @@
# -g/--debug Build a debug version
#
PYTHON_BUILD_VERSION="20160602"
PYTHON_BUILD_VERSION="20180424"
OLDIFS="$IFS"
@@ -60,6 +60,7 @@ resolve_link() {
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
# Use a subshell to avoid modifying the current path
@@ -72,6 +73,7 @@ abs_dirname() {
pwd
)
# cd "$cwd"
}
capitalize() {
@@ -328,21 +330,27 @@ http() {
local file="$3"
[ -n "$url" ] || return 1
if type aria2c &>/dev/null; then
"http_${method}_aria2c" "$url" "$file"
elif type curl &>/dev/null; then
"http_${method}_curl" "$url" "$file"
elif type wget &>/dev/null; then
# SSL Certificate error with older wget that does not support Server Name Indication (#60)
if [[ "$(wget --version 2>/dev/null || true)" = "GNU Wget 1.1"[0-3]* ]]; then
echo "python-build: wget (< 1.14) doesn't support Server Name Indication. Please install curl (>= 7.18.1) and try again" >&2
return 1
fi
"http_${method}_wget" "$url" "$file"
local http_client
if [ -n "${PYTHON_BUILD_HTTP_CLIENT}" ]; then
http_client="http_${method}_${PYTHON_BUILD_HTTP_CLIENT}"
else
echo "error: please install \`aria2c\`, \`curl\` or \`wget\` and try again" >&2
exit 1
if type aria2c &>/dev/null; then
http_client="http_${method}_aria2c"
elif type curl &>/dev/null; then
http_client="http_${method}_curl"
elif type wget &>/dev/null; then
# SSL Certificate error with older wget that does not support Server Name Indication (#60)
if [[ "$(wget --version 2>/dev/null || true)" = "GNU Wget 1.1"[0-3]* ]]; then
echo "python-build: wget (< 1.14) doesn't support Server Name Indication. Please install curl (>= 7.18.1) and try again" >&2
return 1
fi
http_client="http_${method}_wget"
else
echo "error: please install \`aria2c\`, \`curl\` or \`wget\` and try again" >&2
exit 1
fi
fi
"${http_client}" "$url" "$file"
}
http_head_aria2c() {
@@ -1068,6 +1076,26 @@ build_package_pypy_builder() {
build_package_pypy
}
activepython_architecture() {
case "$(uname -s)" in
"Darwin" ) echo "macosx10.9-i386-x86_64" ;;
"Linux" )
case "$(uname -m)" in
"i368" | "i486" | "i586" | "i686" | "i786" ) echo "linux-x86" ;;
"x86_64" ) echo "linux-x86_64" ;;
* ) return 1 ;;
esac
;;
* ) return 1 ;;
esac
}
build_package_activepython() {
local package_name="$1"
{ bash "install.sh" --install-dir "${PREFIX_PATH}"
} >&4 2>&1
}
anaconda_architecture() {
case "$(uname -s)" in
"Darwin" ) echo "MacOSX-x86_64" ;;
@@ -1163,7 +1191,7 @@ fix_rbx_irb() {
require_java7() {
local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -1)"
if [[ $version != *1.[789]* ]]; then
if [[ $version != *[789]* ]]; then
colorize 1 "ERROR" >&3
echo ": Java 7 required. Please install a 1.7-compatible JRE." >&3
return 1
@@ -1467,6 +1495,7 @@ use_homebrew_openssl() {
local ssldir="$(brew --prefix openssl 2>/dev/null || true)"
if [ -d "$ssldir" ]; then
echo "python-build: use openssl from homebrew"
export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}"
export CPPFLAGS="-I$ssldir/include ${CPPFLAGS}"
export LDFLAGS="-L$ssldir/lib ${LDFLAGS}"
else
@@ -1485,10 +1514,16 @@ build_package_mac_openssl() {
export CPPFLAGS="-I${OPENSSL_PREFIX_PATH}/include ${CPPFLAGS}"
export LDFLAGS="-L${OPENSSL_PREFIX_PATH}/lib ${LDFLAGS}"
# Make sure pkg-config finds our build first.
export PKG_CONFIG_PATH="${OPENSSL_PREFIX_PATH}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
# Hint OpenSSL that we prefer a 64-bit build.
export KERNEL_BITS="64"
OPENSSL_CONFIGURE="${OPENSSL_CONFIGURE:-./config}"
local nokerberos
[[ "$1" != openssl-1.0.* ]] || nokerberos=1
# Compile a shared lib with zlib dynamically linked, no kerberos.
package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl2 no-ssl3 no-krb5 shared
@@ -1773,6 +1808,11 @@ build_package_verify_py37() {
build_package_verify_py36 "$1" "${2:-3.7}"
}
# Post-install check for Python 3.8.x
build_package_verify_py38() {
build_package_verify_py37 "$1" "${2:-3.8}"
}
build_package_ez_setup() {
local ez_setup="ez_setup.py"
rm -f "${ez_setup}"
@@ -1780,7 +1820,7 @@ build_package_ez_setup() {
echo "Installing setuptools from ${EZ_SETUP}..." 1>&2
cat "${EZ_SETUP}"
else
[ -n "${EZ_SETUP_URL}" ] || EZ_SETUP_URL="https://bootstrap.pypa.io/ez_setup.py"
[ -n "${EZ_SETUP_URL}" ]
echo "Installing setuptools from ${EZ_SETUP_URL}..." 1>&2
http get "${EZ_SETUP_URL}"
fi
@@ -1799,7 +1839,7 @@ build_package_get_pip() {
echo "Installing pip from ${GET_PIP}..." 1>&2
cat "${GET_PIP}"
else
[ -n "${GET_PIP_URL}" ] || GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py"
[ -n "${GET_PIP_URL}" ]
echo "Installing pip from ${GET_PIP_URL}..." 1>&2
http get "${GET_PIP_URL}"
fi
@@ -1839,7 +1879,7 @@ usage() {
list_definitions() {
{ for DEFINITION_DIR in "${PYTHON_BUILD_DEFINITIONS[@]}"; do
[ -d "$DEFINITION_DIR" ] && find "$DEFINITION_DIR" -maxdepth 1 -type f -print0 | xargs -0 -n 1 basename 2>/dev/null
[ -d "$DEFINITION_DIR" ] && ls "$DEFINITION_DIR" | grep -xv patches
done
} | sort_versions | uniq
}
@@ -2082,11 +2122,39 @@ if [ -e "$HOME/.pydistutils.cfg" ]; then
fi
# Download specified version of ez_setup.py/get-pip.py (#202)
if [ -n "${SETUPTOOLS_VERSION}" ]; then
EZ_SETUP_URL="https://bitbucket.org/pypa/setuptools/raw/${SETUPTOOLS_VERSION}/ez_setup.py"
if [ -z "${EZ_SETUP_URL}" ]; then
if [ -n "${SETUPTOOLS_VERSION}" ]; then
EZ_SETUP_URL="https://bitbucket.org/pypa/setuptools/raw/${SETUPTOOLS_VERSION}/ez_setup.py"
unset SETUPTOOLS_VERSION
else
EZ_SETUP_URL="https://bootstrap.pypa.io/ez_setup.py"
fi
fi
if [ -n "${PIP_VERSION}" ]; then
GET_PIP_URL="https://raw.githubusercontent.com/pypa/pip/${PIP_VERSION}/contrib/get-pip.py"
if [ -z "${GET_PIP_URL}" ]; then
if [ -n "${PIP_VERSION}" ]; then
{ colorize 1 "WARNING"
echo ": Setting PIP_VERSION=${PIP_VERSION} is no longer supported and may cause failures during the install process."
} 1>&2
GET_PIP_URL="https://raw.githubusercontent.com/pypa/pip/${PIP_VERSION}/contrib/get-pip.py"
# Unset `PIP_VERSION` from environment before invoking `get-pip.py` to deal with "ValueError: invalid truth value" (pypa/pip#4528)
unset PIP_VERSION
else
# Use custom get-pip URL based on the target version (#1127)
case "${DEFINITION_PATH##*/}" in
2.6 | 2.6.* )
GET_PIP_URL="https://bootstrap.pypa.io/2.6/get-pip.py"
;;
3.2 | 3.2.* )
GET_PIP_URL="https://bootstrap.pypa.io/3.2/get-pip.py"
;;
3.3 | 3.3.* )
GET_PIP_URL="https://bootstrap.pypa.io/3.3/get-pip.py"
;;
* )
GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py"
;;
esac
fi
fi
# Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220)

View File

@@ -2,7 +2,7 @@
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.7.0a3" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0a3.tar.xz#3432d3ddf97483339badda961f7d0564595460fee166dd8f106dc4201e68446e" ldflags_dirs standard verify_py37 ensurepip
install_package "Python-2.7.15" "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz#22d9b1ac5b26135ad2b8c2901a9413537e08749a753356ee913c84dbd2df5574" ldflags_dirs standard verify_py27 ensurepip
else
install_package "Python-3.7.0a3" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0a3.tgz#ef75398e6f978a4ead005b11d988ab2d871cf24afa4bdeef97fe09b506a76736" ldflags_dirs standard verify_py37 ensurepip
install_package "Python-2.7.15" "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz#18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db" ldflags_dirs standard verify_py27 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.4.8" "https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tar.xz#29a472fa902c7b2add152f5e1e82e0885a8d360645689c1db5d1949a7e8ac3ea" ldflags_dirs standard verify_py34 ensurepip
else
install_package "Python-3.4.8" "https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tgz#8b1a1ce043e132082d29a5d09f2841f193c77b631282a82f98895a5dbaba1639" ldflags_dirs standard verify_py34 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.4.9" "https://www.python.org/ftp/python/3.4.9/Python-3.4.9.tar.xz#59629676ba2b01a798f5211d8f63c26ee52f1d5133cf37583e0bf1bad50c2bd9" ldflags_dirs standard verify_py34 ensurepip
else
install_package "Python-3.4.9" "https://www.python.org/ftp/python/3.4.9/Python-3.4.9.tgz#e02e565372750a6678efe35ddecbe5ccd5330a8a2e8bbe38d3060713492e3dab" ldflags_dirs standard verify_py34 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.5.5" "https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tar.xz#063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009" ldflags_dirs standard verify_py35 ensurepip
else
install_package "Python-3.5.5" "https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz#2f988db33913dcef17552fd1447b41afb89dbc26e3cdfc068ea6c62013a3a2a5" ldflags_dirs standard verify_py35 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.5.6" "https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tar.xz#f55cde04f521f273c7cba08912921cc5642cfc15ca7b22d5829f0aff4371155f" ldflags_dirs standard verify_py35 ensurepip
else
install_package "Python-3.5.6" "https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz#30d2ff093988e74283e1abfee823292c6b59590796b9827e95ba4940b27d26f8" ldflags_dirs standard verify_py35 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.6.5" "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz#f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6" ldflags_dirs standard verify_py36 ensurepip
else
install_package "Python-3.6.5" "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz#53a3e17d77cd15c5230192b6a8c1e031c07cd9f34a2f089a731c6f6bd343d5c6" ldflags_dirs standard verify_py36 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.6.6" "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz#d79bc15d456e73a3173a2938f18a17e5149c850ebdedf84a78067f501ee6e16f" ldflags_dirs standard verify_py36 ensurepip
else
install_package "Python-3.6.6" "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz#7d56dadf6c7d92a238702389e80cfe66fbfae73e584189ed6f89c75bbf3eda58" ldflags_dirs standard verify_py36 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz#81fd1401a9d66533b0a3e9e3f4ea1c7c6702d57d5b90d659f971e6f1b745f77d" ldflags_dirs standard verify_py37 ensurepip
else
install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz#b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239" ldflags_dirs standard verify_py37 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz#35446241e995773b1bed7d196f4b624dadcadc8429f26282e756b2fb8a351193" ldflags_dirs standard verify_py37 ensurepip
else
install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz#7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0" ldflags_dirs standard verify_py37 ensurepip
fi

View File

@@ -1,4 +1,4 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_git "Python-3.7-dev" "https://github.com/python/cpython" master standard verify_py37 ensurepip
install_git "Python-3.7-dev" "https://github.com/python/cpython" "3.7" standard verify_py37 ensurepip

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.7.0" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz#0382996d1ee6aafe59763426cf0139ffebe36984474d0ec4126dd1c40a8b3549" ldflags_dirs standard verify_py37 ensurepip
else
install_package "Python-3.7.0" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz#85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d" ldflags_dirs standard verify_py37 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.7.1" "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz#fa7e2b8e8c9402f192ad56dc4f814089d1c4466c97d780f5e5acc02c04243d6d" ldflags_dirs standard verify_py37 ensurepip
else
install_package "Python-3.7.1" "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz#36c1b81ac29d0f8341f727ef40864d99d8206897be96be73dc34d4739c9c9f06" ldflags_dirs standard verify_py37 ensurepip
fi

View File

@@ -0,0 +1,8 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
if has_tar_xz_support; then
install_package "Python-3.7.2" "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz#d83fe8ce51b1bb48bbcf0550fd265b9a75cdfdfa93f916f9e700aef8444bf1bb" ldflags_dirs standard verify_py37 ensurepip
else
install_package "Python-3.7.2" "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz#f09d83c773b9cc72421abba2c317e4e6e05d919f9bcf34468e192b6a6c8e328d" ldflags_dirs standard verify_py37 ensurepip
fi

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "https://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_git "Python-3.8-dev" "https://github.com/python/cpython" master standard verify_py38 ensurepip

View File

@@ -0,0 +1,15 @@
# Download source: http://downloads.activestate.com/ActivePython/releases/2.7.14.2717/
case "$(activepython_architecture 2>/dev/null || true)" in
"linux-x86_64" )
install_package "ActivePython-2.7.14.2717-linux-x86_64-glibc-2.12-404899" "http://downloads.activestate.com/ActivePython/releases/2.7.14.2717/ActivePython-2.7.14.2717-linux-x86_64-glibc-2.12-404899.tar.gz#0b514b0edb6b847524d44637f56fdebcedb007864c61f8500e68bc2015dad937" "activepython" verify_py27
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Active Python is not available for $(activepython_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,15 @@
# Location source: http://downloads.activestate.com/ActivePython/releases/3.5.4.3504/
case "$(activepython_architecture 2>/dev/null || true)" in
"linux-x86_64" )
install_package "ActivePython-3.5.4.3504-linux-x86_64-glibc-2.12-404899" "http://downloads.activestate.com/ActivePython/releases/3.5.4.3504/ActivePython-3.5.4.3504-linux-x86_64-glibc-2.12-404899.tar.gz#c65e7384bcff715399ef077aea5a17a9f60c3f5de3532a3767497af1d555f092" "activepython" verify_py35
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Active Python is not available for $(activepython_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,18 @@
# Download source: http://downloads.activestate.com/ActivePython/releases/3.6.0.3600/
case "$(activepython_architecture 2>/dev/null || true)" in
"linux-x86_64" )
install_package "ActivePython-3.6.0.3600-linux-x86_64-glibc-2.3.6-401834" "http://downloads.activestate.com/ActivePython/releases/3.6.0.3600/ActivePython-3.6.0.3600-linux-x86_64-glibc-2.3.6-401834.tar.gz#edd17d3221d9744fe27d37842b325f55d0261e69073de3be54e29c1806fe57ae" "activepython" verify_py36
;;
"linux-x86" )
install_package "ActivePython-3.6.0.3600-linux-x86-glibc-2.3.6-401834" "http://downloads.activestate.com/ActivePython/releases/3.6.0.3600/ActivePython-3.6.0.3600-linux-x86-glibc-2.3.6-401834.tar.gz#fafa22ad3346532384866ad009da0c9f23323167dff9de5995f94e827a5eba32" "activepython" verify_py36
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Active Python is not available for $(activepython_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda2-2018.12-Linux-x86.sh" "https://repo.anaconda.com/archive/Anaconda2-2018.12-Linux-x86.sh#e086c041695c0e50642aee8f4e7adad3185c6ce1d11737665653497d2edd78fd" "anaconda" verify_py27
;;
"Linux-x86_64" )
install_script "Anaconda2-2018.12-Linux-x86_64.sh" "https://repo.anaconda.com/archive/Anaconda2-2018.12-Linux-x86_64.sh#1821d4b623ed449e0acb6df3ecbabd3944cffa98f96a5234b7a102a7c0853dc6" "anaconda" verify_py27
;;
"MacOSX-x86_64" )
install_script "Anaconda2-2018.12-MacOSX-x86_64.sh" "https://repo.anaconda.com/archive/Anaconda2-2018.12-MacOSX-x86_64.sh#5c590b1b3cdc2eedd52edce0caabbce6665d84084d31b913e789e8c46a94859d" "anaconda" verify_py27
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda2 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda2-5.1.0-Linux-x86" "https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86.sh#5af0c7a09a5f3aaf3666c0b362246d342d80e782128ef043998c9ead5ad41df7" "anaconda" verify_py27
;;
"Linux-x86_64" )
install_script "Anaconda2-5.1.0-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.1.0-Linux-x86_64.sh#5f26ee92860d1dffdcd20910ff2cf75572c39d2892d365f4e867a611cca2af5b" "anaconda" verify_py27
;;
"MacOSX-x86_64" )
install_script "Anaconda2-5.1.0-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.1.0-MacOSX-x86_64.sh#b686e01aeadb33526d9c154a0ac6f691dfad135080df96fb44d3ae1e4b128521" "anaconda" verify_py27
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda2 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda2-5.2.0-Linux-x86" "https://repo.continuum.io/archive/Anaconda2-5.2.0-Linux-x86.sh#402758c24767e9eb3b77312c388725a058f76e03316464797c3ca404e6eebc2c" "anaconda" verify_py27
;;
"Linux-x86_64" )
install_script "Anaconda2-5.2.0-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.2.0-Linux-x86_64.sh#cb0d7a08b0e2cec4372033d3269979b4e72e2353ffd1444f57cb38bc9621219f" "anaconda" verify_py27
;;
"MacOSX-x86_64" )
install_script "Anaconda2-5.2.0-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.2.0-MacOSX-x86_64.sh#d7d46e566306da5979cd5632079497fe6103b980e3a089ccf27a9f30cbee84dc" "anaconda" verify_py27
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda2 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda2-5.3.0-Linux-x86" "https://repo.continuum.io/archive/Anaconda2-5.3.0-Linux-x86.sh#58d4229ad7097e1f3387d7f6582dcf2bbc684bffea284cd25096bd87530ba590" "anaconda" verify_py27
;;
"Linux-x86_64" )
install_script "Anaconda2-5.3.0-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.3.0-Linux-x86_64.sh#50eeaab24bfa2472bc6485fe8f0e612ed67e561eda1ff9fbf07b62c96443c1be" "anaconda" verify_py27
;;
"MacOSX-x86_64" )
install_script "Anaconda2-5.3.0-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.3.0-MacOSX-x86_64.sh#bea3eb7667d265c8fe678ddde8432ac1f8286224baae498d092bb068b8185e88" "anaconda" verify_py27
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda2 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda2-5.3.1-Linux-x86" "https://repo.continuum.io/archive/Anaconda2-5.3.1-Linux-x86.sh#a38017dfa59141c63ec9882a15bd35e7ce63810ae0d1bcf47c79b7fb9f83e969" "anaconda" verify_py27
;;
"Linux-x86_64" )
install_script "Anaconda2-5.3.1-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.3.1-Linux-x86_64.sh#f0650ad2f9ca4ae3f3162d7204a32950bc794f37f322eb47b5ad9412454f998c" "anaconda" verify_py27
;;
"MacOSX-x86_64" )
install_script "Anaconda2-5.3.1-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda2-5.3.1-MacOSX-x86_64.sh#df81e9d5d7d4c6595609a8d353eab80102a83b49cf8c19e5c1e5ad4ac0f39328" "anaconda" verify_py27
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda2 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda3-2018.12-Linux-x86.sh" "https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86.sh#7895052814921d45ed0585d1fb19f8edd6fbd02b61639310f770e2ebe85cd975" "anaconda" verify_py37
;;
"Linux-x86_64" )
install_script "Anaconda3-2018.12-Linux-x86_64.sh" "https://repo.anaconda.com/archive/Anaconda3-2018.12-Linux-x86_64.sh#1019d0857e5865f8a6861eaf15bfe535b87e92b72ce4f531000dc672be7fce00" "anaconda" verify_py37
;;
"MacOSX-x86_64" )
install_script "Anaconda3-2018.12-MacOSX-x86_64.sh" "https://repo.anaconda.com/archive/Anaconda3-2018.12-MacOSX-x86_64.sh#4ccd3944d994fd47e5701c341725a63e984f8c042bf4dc19c9dfc7c135e7d8e4" "anaconda" verify_py37
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda3-5.1.0-Linux-x86" "https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86.sh#0e940272517d8f8a6f26316a19e4be2bdaea8477a3a32cc2ecee7b48fd0fae84" "anaconda" verify_py36
;;
"Linux-x86_64" )
install_script "Anaconda3-5.1.0-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-5.1.0-Linux-x86_64.sh#7e6785caad25e33930bc03fac4994a434a21bc8401817b7efa28f53619fa9c29" "anaconda" verify_py36
;;
"MacOSX-x86_64" )
install_script "Anaconda3-5.1.0-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-5.1.0-MacOSX-x86_64.sh#be705b3c3a0ca29ee32ce7658890bb5edb32a9eadedc09dec3d7e3cfbfd23cb7" "anaconda" verify_py36
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda3-5.2.0-Linux-x86" "https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86.sh#f3527d085d06f35b6aeb96be2a9253ff9ec9ced3dc913c8e27e086329f3db588" "anaconda" verify_py36
;;
"Linux-x86_64" )
install_script "Anaconda3-5.2.0-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-5.2.0-Linux-x86_64.sh#09f53738b0cd3bb96f5b1bac488e5528df9906be2480fe61df40e0e0d19e3d48" "anaconda" verify_py36
;;
"MacOSX-x86_64" )
install_script "Anaconda3-5.2.0-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-5.2.0-MacOSX-x86_64.sh#c8089121dc89ffe8f9a0c01205bab75a112821a13d413152d6690f5eef094afa" "anaconda" verify_py36
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda3-5.3.0-Linux-x86" "https://repo.continuum.io/archive/Anaconda3-5.3.0-Linux-x86.sh#c15ffac2ae35179a15dc5872e5bb405b4027a0fd76c6817e9cee39545bc5ca0b" "anaconda" verify_py36
;;
"Linux-x86_64" )
install_script "Anaconda3-5.3.0-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-5.3.0-Linux-x86_64.sh#cfbf5fe70dd1b797ec677e63c61f8efc92dad930fd1c94d60390bb07fdc09959" "anaconda" verify_py36
;;
"MacOSX-x86_64" )
install_script "Anaconda3-5.3.0-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-5.3.0-MacOSX-x86_64.sh#bc073b6e6d3b2ef29d01a2caf1de7c206c95968231ef0492d958eae1a314b4e9" "anaconda" verify_py36
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,19 @@
case "$(anaconda_architecture 2>/dev/null || true)" in
"Linux-x86" )
install_script "Anaconda3-5.3.1-Linux-x86.sh" "https://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86.sh#5dab8b2c95595df7fa55b88643f8372135c14faabd9ec05a34021551bb0999a1" "anaconda" verify_py36
;;
"Linux-x86_64" )
install_script "Anaconda3-5.3.1-Linux-x86_64.sh" "https://repo.continuum.io/archive/Anaconda3-5.3.1-Linux-x86_64.sh#d4c4256a8f46173b675dd6a62d12f566ed3487f932bab6bb7058f06c124bcc27" "anaconda" verify_py36
;;
"MacOSX-x86_64" )
install_script "Anaconda3-5.3.1-MacOSX-x86_64.sh" "https://repo.continuum.io/archive/Anaconda3-5.3.1-MacOSX-x86_64.sh#23c373abce2463d4df495f5a1c7e8b0faec6eda09542d98f41ed65a0fa0dbde0" "anaconda" verify_py36
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
echo
} >&2
exit 1
;;
esac

View File

@@ -1,2 +1,2 @@
install_git "ironpython-dev" "https://github.com/IronLanguages/main.git" master ironpython_builder
install_git "ironpython-dev" "https://github.com/IronLanguages/ironpython2.git" master ironpython_builder
# FIXME: have not confirmed to install setuptools into IronPython yet

View File

@@ -0,0 +1,2 @@
#require_gcc
install_package micropython-1.9.4 "https://github.com/micropython/micropython/releases/download/v1.9.4/micropython-1.9.4.tar.gz#0db042011bffcbd65362b67eb3cca87eaefa9f2a55b747fa75e922c706b8ce1a" micropython

View File

@@ -0,0 +1,58 @@
diff -ur ../Python-2.7.6/configure ./configure
--- ../Python-2.7.6/configure 2014-06-19 14:35:59.000000000 -0400
+++ ./configure 2018-04-24 12:44:24.143179222 -0400
@@ -6045,8 +6045,14 @@
# Calculate the right deployment target for this build.
#
- cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
- if test ${cur_target} '>' 10.2; then
+ cur_target_major=`sw_vers -productVersion | \
+ sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'`
+ cur_target_minor=`sw_vers -productVersion | \
+ sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
+ cur_target="${cur_target_major}.${cur_target_minor}"
+ if test ${cur_target_major} -eq 10 && \
+ test ${cur_target_minor} -ge 3
+ then
cur_target=10.3
if test ${enable_universalsdk}; then
if test "${UNIVERSAL_ARCHS}" = "all"; then
@@ -8230,15 +8236,14 @@
# Use -undefined dynamic_lookup whenever possible (10.3 and later).
# This allows an extension to be used in any Python
- if test ${MACOSX_DEPLOYMENT_TARGET} '>' 10.2
+ dep_target_major=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
+ sed 's/\([0-9]*\)\.\([0-9]*\).*/\1/'`
+ dep_target_minor=`echo ${MACOSX_DEPLOYMENT_TARGET} | \
+ sed 's/\([0-9]*\)\.\([0-9]*\).*/\2/'`
+ if test ${dep_target_major} -eq 10 && \
+ test ${dep_target_minor} -le 2
then
- if test "${enable_universalsdk}"; then
- LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
- fi
- LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
- LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
- BLDSHARED="$LDSHARED"
- else
+ # building for OS X 10.0 through 10.2
LDSHARED='$(CC) -bundle'
LDCXXSHARED='$(CXX) -bundle'
if test "$enable_framework" ; then
@@ -8252,6 +8257,14 @@
LDSHARED="$LDSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
LDCXXSHARED="$LDCXXSHARED "'-bundle_loader $(BINDIR)/python$(VERSION)$(EXE)'
fi
+ else
+ # building for OS X 10.3 and later
+ if test "${enable_universalsdk}"; then
+ LDFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${LDFLAGS}"
+ fi
+ LDSHARED='$(CC) -bundle -undefined dynamic_lookup'
+ LDCXXSHARED='$(CXX) -bundle -undefined dynamic_lookup'
+ BLDSHARED="$LDSHARED"
fi
;;
Linux*|GNU*|QNX*)

View File

@@ -0,0 +1,102 @@
diff -r -u ../Python-3.3.6.orig/Lib/ssl.py ./Lib/ssl.py
--- ../Python-3.3.6.orig/Lib/ssl.py 2014-10-12 07:03:53.000000000 +0000
+++ ./Lib/ssl.py 2015-12-20 06:43:59.175134734 +0000
@@ -66,47 +66,32 @@
SSLSyscallError, SSLEOFError,
)
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
-from _ssl import (
- OP_ALL, OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_TLSv1,
- OP_CIPHER_SERVER_PREFERENCE, OP_SINGLE_DH_USE
- )
-try:
- from _ssl import OP_NO_COMPRESSION
-except ImportError:
- pass
+from _ssl import RAND_status, RAND_add, RAND_bytes, RAND_pseudo_bytes
try:
- from _ssl import OP_SINGLE_ECDH_USE
+ from _ssl import RAND_egd
except ImportError:
+ # LibreSSL does not provide RAND_egd
pass
-from _ssl import RAND_status, RAND_egd, RAND_add, RAND_bytes, RAND_pseudo_bytes
-from _ssl import (
- SSL_ERROR_ZERO_RETURN,
- SSL_ERROR_WANT_READ,
- SSL_ERROR_WANT_WRITE,
- SSL_ERROR_WANT_X509_LOOKUP,
- SSL_ERROR_SYSCALL,
- SSL_ERROR_SSL,
- SSL_ERROR_WANT_CONNECT,
- SSL_ERROR_EOF,
- SSL_ERROR_INVALID_ERROR_CODE,
- )
+
+def _import_symbols(prefix):
+ for n in dir(_ssl):
+ if n.startswith(prefix):
+ globals()[n] = getattr(_ssl, n)
+
+_import_symbols('OP_')
+_import_symbols('SSL_ERROR_')
+_import_symbols('PROTOCOL_')
+
from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN
-from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
- PROTOCOL_TLSv1)
+
from _ssl import _OPENSSL_API_VERSION
-_PROTOCOL_NAMES = {
- PROTOCOL_TLSv1: "TLSv1",
- PROTOCOL_SSLv23: "SSLv23",
- PROTOCOL_SSLv3: "SSLv3",
-}
+_PROTOCOL_NAMES = {value: name for name, value in globals().items() if name.startswith('PROTOCOL_')}
+
try:
- from _ssl import PROTOCOL_SSLv2
_SSLv2_IF_EXISTS = PROTOCOL_SSLv2
-except ImportError:
+except NameError:
_SSLv2_IF_EXISTS = None
-else:
- _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
from socket import getnameinfo as _getnameinfo
from socket import error as socket_error
@@ -664,7 +649,7 @@
d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)]
return base64.decodebytes(d.encode('ASCII', 'strict'))
-def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None):
+def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None):
"""Retrieve the certificate from the server at the specified address,
and return it as a PEM-encoded string.
If 'ca_certs' is specified, validate the server cert against it.
diff -r -u ../Python-3.3.6.orig/Modules/_ssl.c ./Modules/_ssl.c
--- ../Python-3.3.6.orig/Modules/_ssl.c 2014-10-12 07:03:53.000000000 +0000
+++ ./Modules/_ssl.c 2015-12-20 06:42:45.773667904 +0000
@@ -1746,8 +1746,10 @@
PySSL_BEGIN_ALLOW_THREADS
if (proto_version == PY_SSL_VERSION_TLS1)
ctx = SSL_CTX_new(TLSv1_method());
+#ifndef OPENSSL_NO_SSL3
else if (proto_version == PY_SSL_VERSION_SSL3)
ctx = SSL_CTX_new(SSLv3_method());
+#endif
#ifndef OPENSSL_NO_SSL2
else if (proto_version == PY_SSL_VERSION_SSL2)
ctx = SSL_CTX_new(SSLv2_method());
@@ -2842,8 +2844,10 @@
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
PY_SSL_VERSION_SSL2);
#endif
+#ifndef OPENSSL_NO_SSL3
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
PY_SSL_VERSION_SSL3);
+#endif
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
PY_SSL_VERSION_SSL23);
PyModule_AddIntConstant(m, "PROTOCOL_TLSv1",

View File

@@ -0,0 +1,50 @@
case "$(pypy_architecture 2>/dev/null || true)" in
"linux" )
if require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" 1>/dev/null 2>&1; then
install_package "pypy2-v6.0.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux32.tar.bz2#ad1082d4328ae8f32617b14628648583b82b6d29df3aa42b97bd1853c08c4bc8" "pypy" verify_py27 ensurepip
else
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13."
echo "try 'pypy3.5-6.0.0-src' to build from source."
echo
} >&2
exit 1
fi
;;
"linux-armel" )
require_distro "Ubuntu 12.04" || true
install_package "pypy2-v6.0.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armel.tar.bz2#924ca3f90aa28e8961859508c25752c95253b842318a0f267267ffe90f56a916" "pypy" verify_py27 ensurepip
;;
"linux-armhf" )
if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then
install_package "pypy2-v6.0.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armhf-raspbian.tar.bz2#6506ce739e31981e5596d3cc2e2c7f5b086ee77bb4d97773082b62b2f283eef2" "pypy" verify_py27 ensurepip
else
require_distro "Ubuntu 13.04" || true
install_package "pypy2-v6.0.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armhf-raring.tar.bz2#2c430240cecb562102c677598f106aa57899f00cd37f719989e18ed9ca44bd01" "pypy" verify_py27 ensurepip
fi
;;
"linux64" )
if require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" 1>/dev/null 2>&1; then
install_package "pypy2-v6.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2#6cbf942ba7c90f504d8d6a2e45d4244e3bf146c8722d64e9410b85eac6b5af67" "pypy" verify_py27 ensurepip
else
install_package "pypy-6.0.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-6.0.0-linux_x86_64-portable.tar.bz2#1d2a833680f9432b6b5f6b8503f656535f429eeb6c4bc5408abe5b637bfb9b94" "pypy" verify_py27 ensurepip
fi
;;
"osx64" )
install_package "pypy2-v6.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-osx64.tar.bz2#d7dc443e6bb9a45212e8d8f5a63e9f6ce23f1d88c50709efea1c75b76c8bc186" "pypy" verify_py27 ensurepip
;;
"win32" )
# FIXME: never tested on Windows
install_zip "pypy2-v6.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-win32.zip#6e2210dae1ae721ed4eb9cba19f15453514b64111511c84f24843c4fdefdaf7f" "pypy" verify_py27 ensurepip
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
echo "try 'pypy2-6.0.0-src' to build from source."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,3 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "pypy2-v6.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-src.tar.bz2#6097ec5ee23d0d34d8cd27a1072bed041c8a080ad48731190a03a2223029212d" "pypy_builder" verify_py27 ensurepip

View File

@@ -0,0 +1,58 @@
case "$(pypy_architecture 2>/dev/null || true)" in
"linux" )
if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then
install_package "pypy3-v5.10.1-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux32.tar.bz2#a6ceca9ee5dc511de7902164464b88311fec9366c5673d0c00528eda862bbe54" "pypy" verify_py27 ensurepip
fi
;;
"linux64" )
if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then
install_package "pypy3-v5.10.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux64.tar.bz2#75a276e1ee1863967bbacb70c5bff636de200768c0ec90e72f7ec17aace0aefe" "pypy" verify_py27 ensurepip
else
install_package "pypy3.5-5.10.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.10.1-linux_x86_64-portable.tar.bz2#b7c7b0e0905208ce8a8061b1a0ae136a702e5218d0d350cb5216ad5a7c20d12e" "pypy" verify_py35 ensurepip
fi
;;
"linux-armel" )
require_distro "Ubuntu 12.04" || true
install_package "pypy3-v5.10.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux-armel.tar.bz2#5065e9ad958d06b9612ba974f43997d20168d4245c054dd43270e4b458782282" "pypy" verify_py27 ensurepip
;;
"linux-armhf" )
if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then
install_package "pypy3-v5.10.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux-armhf-raspbian.tar.bz2#203dd595fbad7055340b23326f20c85b0d6c11c4877e3559a437611fc2ac40c2" "pypy" verify_py27 ensurepip
else
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
echo "try 'pypy3.5-5.10.1-src' to build from source."
echo
} >&2
exit 1
fi
;;
"osx64" )
if require_osx_version "10.13"; then
install_package "pypy3-v5.10.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-osx64.tar.bz2#52f006611513c995fdebba6e72d394186d4085460408cbbe086e5467bf3fb9b6" "pypy" verify_py27 ensurepip
else
# install_package "pypy3-v5.10.1-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-osx64-2.tar.bz2#" "pypy" verify_py27 ensurepip
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13."
echo "try 'pypy3.5-5.10.1-src' to build from source."
echo
} >&2
exit 1
fi
;;
"win32" )
# FIXME: never tested on Windows
install_zip "pypy3-v5.10.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-win32.zip#4edf4f021689a529e5a631c5cca72a1a9dc19a6ea2091e64289cdd5b60eaf929" "pypy" verify_py27 ensurepip
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
echo "try 'pypy3.5-5.10.1-src' to build from source."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,3 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "pypy3-v5.10.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-src.tar.bz2#f5548e06e2fc0c24ec8b6e3c5b09f90081818f7caa3e436dc312592611724713" "pypy_builder" verify_py35 ensurepip

View File

@@ -0,0 +1,58 @@
case "$(pypy_architecture 2>/dev/null || true)" in
"linux" )
if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then
install_package "pypy3-v6.0.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux32.tar.bz2#b04eeee5160e6cb5f8962de80f077ea1dc7be34e77d74bf075519c23603f5ff9" "pypy" verify_py27 ensurepip
fi
;;
"linux64" )
if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then
install_package "pypy3-v6.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2#4cfffa292b9ef34bb6ba39cdbaa196c5c5cbbc5aa3faaa157cf45d7e34027048" "pypy" verify_py27 ensurepip
else
install_package "pypy3.5-6.0.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2#07f16282d126abfa759702baea869b0f661aa97f4c553ebec66c624bda28155f" "pypy" verify_py35 ensurepip
fi
;;
"linux-armel" )
require_distro "Ubuntu 12.04" || true
install_package "pypy3-v6.0.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux-armel.tar.bz2#6a6888a55192f58594838b8b3d2e7daaad43d3bf4293afab3dd8987d0bbd1124" "pypy" verify_py27 ensurepip
;;
"linux-armhf" )
if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then
install_package "pypy3-v6.0.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux-armhf-raspbian.tar.bz2#8a0420dda23413925400538bbfc0cff2bbb2ab0de984eef6faaeab6d3309cbcc" "pypy" verify_py27 ensurepip
else
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
echo "try 'pypy3.5-6.0.0-src' to build from source."
echo
} >&2
exit 1
fi
;;
"osx64" )
if require_osx_version "10.13"; then
install_package "pypy3-v6.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-osx64.tar.bz2#938b8034e30f5f5060d2a079070c56c3be5559bc7ae9cc0c8395fe6fc45cfe4c" "pypy" verify_py27 ensurepip
else
# install_package "pypy3-v6.0.0-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-osx64-2.tar.bz2#" "pypy" verify_py27 ensurepip
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13."
echo "try 'pypy3.5-6.0.0-src' to build from source."
echo
} >&2
exit 1
fi
;;
"win32" )
# FIXME: never tested on Windows
install_zip "pypy3-v6.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-win32.zip#72dddb3746a51f7672c77d619c818e27efe899e08ae82762448e50dbfdc2f5f3" "pypy" verify_py27 ensurepip
;;
* )
{ echo
colorize 1 "ERROR"
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
echo "try 'pypy3.5-6.0.0-src' to build from source."
echo
} >&2
exit 1
;;
esac

View File

@@ -0,0 +1,3 @@
#require_gcc
install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
install_package "pypy3-v6.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-src.tar.bz2#ed8005202b46d6fc6831df1d13a4613bc40084bfa42f275068edadf8954034a3" "pypy_builder" verify_py35 ensurepip

View File

@@ -8,7 +8,6 @@ export CC=cc
export -n PYTHON_CONFIGURE_OPTS
setup() {
ensure_not_found_in_path aria2c
mkdir -p "$INSTALL_ROOT"
stub md5 false
stub curl false
@@ -537,6 +536,10 @@ OUT
# nop
}
@test "JRuby Java 9 version string" {
# nop
}
@test "non-writable TMPDIR aborts build" {
export TMPDIR="${TMP}/build"
mkdir -p "$TMPDIR"

View File

@@ -3,10 +3,8 @@
load test_helper
export PYTHON_BUILD_SKIP_MIRROR=1
export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
export PYTHON_BUILD_CURL_OPTS=
setup() {
ensure_not_found_in_path aria2c
mkdir "$PYTHON_BUILD_CACHE_PATH"
}

View File

@@ -3,11 +3,6 @@
load test_helper
export PYTHON_BUILD_SKIP_MIRROR=1
export PYTHON_BUILD_CACHE_PATH=
export PYTHON_BUILD_CURL_OPTS=
setup() {
ensure_not_found_in_path aria2c
}
@test "package URL without checksum" {

View File

@@ -3,10 +3,8 @@
load test_helper
export PYTHON_BUILD_SKIP_MIRROR=1
export PYTHON_BUILD_CACHE_PATH=
export PYTHON_BUILD_ARIA2_OPTS=
setup() {
ensure_not_found_in_path aria2c
export PYTHON_BUILD_BUILD_PATH="${TMP}/source"
mkdir -p "${PYTHON_BUILD_BUILD_PATH}"
}
@@ -21,6 +19,8 @@ setup() {
}
@test "using aria2c if available" {
export PYTHON_BUILD_ARIA2_OPTS=
export PYTHON_BUILD_HTTP_CLIENT="aria2c"
stub aria2c "--allow-overwrite=true --no-conf=true -o * http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$4"
install_fixture definitions/without-checksum

View File

@@ -4,11 +4,6 @@ load test_helper
export PYTHON_BUILD_SKIP_MIRROR=
export PYTHON_BUILD_CACHE_PATH=
export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
export PYTHON_BUILD_CURL_OPTS=
setup() {
ensure_not_found_in_path aria2c
}
@test "package URL without checksum bypasses mirror" {

View File

@@ -5,11 +5,11 @@ export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
export MAKE=make
export MAKE_OPTS="-j 2"
export CC=cc
export PYTHON_BUILD_HTTP_CLIENT="curl"
export TMP_FIXTURES="$TMP/fixtures"
setup() {
ensure_not_found_in_path aria2c
mkdir -p "$INSTALL_ROOT"
stub md5 false
stub curl false
@@ -92,6 +92,19 @@ resolve_link() {
$(type -p greadlink readlink | head -1) "$1"
}
run_inline_definition_with_name() {
local definition_name="build-definition"
case "$1" in
"--name="* )
local definition_name="${1#--name=}"
shift 1
;;
esac
local definition="${TMP}/${definition_name}"
cat > "$definition"
run python-build "$definition" "${1:-$INSTALL_ROOT}"
}
@test "apply built-in python patch before building" {
cached_tarball "Python-3.6.2"
@@ -326,3 +339,43 @@ OUT
assert_success
assert_output "10.4"
}
@test "use the default EZ_SETUP_URL by default" {
run_inline_definition <<OUT
echo "\${EZ_SETUP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/ez_setup.py"
assert_success
}
@test "use the default GET_PIP_URL by default" {
run_inline_definition <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for 2.6 versions" {
run_inline_definition_with_name --name=2.6 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/2.6/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}"
OUT
assert_output "https://bootstrap.pypa.io/3.2/get-pip.py"
assert_success
}
@test "use the custom GET_PIP_URL for 3.3 versions" {
run_inline_definition_with_name --name=3.3 <<OUT
echo "\${GET_PIP_URL}"
OUT
assert_output "https://bootstrap.pypa.io/3.3/get-pip.py"
assert_success
}

View File

@@ -1,4 +1,6 @@
export TMP="$BATS_TEST_DIRNAME/tmp"
export RUBY_BUILD_CURL_OPTS=
export RUBY_BUILD_HTTP_CLIENT="curl"
if [ "$FIXTURE_ROOT" != "$BATS_TEST_DIRNAME/fixtures" ]; then
export FIXTURE_ROOT="$BATS_TEST_DIRNAME/fixtures"
@@ -9,35 +11,6 @@ if [ "$FIXTURE_ROOT" != "$BATS_TEST_DIRNAME/fixtures" ]; then
export PATH
fi
remove_command_from_path() {
OLDIFS="${IFS}"
local cmd="$1"
local path
local paths=()
IFS=:
for path in ${PATH}; do
if [ -e "${path}/${cmd}" ]; then
local tmp_path="$(mktemp -d "${TMP}/path.XXXXX")"
ln -fs "${path}"/* "${tmp_path}"
rm -f "${tmp_path}/${cmd}"
paths["${#paths[@]}"]="${tmp_path}"
else
paths["${#paths[@]}"]="${path}"
fi
done
export PATH="${paths[*]}"
IFS="${OLDIFS}"
}
ensure_not_found_in_path() {
local cmd
for cmd; do
if command -v "${cmd}" 1>/dev/null 2>&1; then
remove_command_from_path "${cmd}"
fi
done
}
teardown() {
rm -fr "${TMP:?}"/*
}

View File

@@ -1,4 +1,5 @@
bunzip2
clear
# curl
curl
curl-config

24
src/configure vendored
View File

@@ -34,16 +34,16 @@ esac
eval "$("$src_dir"/shobj-conf -C "$CC" -o "$host_os")"
sed "
s,@CC@,${CC},
s,@CFLAGS@,${CFLAGS},
s,@LOCAL_CFLAGS@,${LOCAL_CFLAGS},
s,@DEFS@,${DEFS},
s,@LOCAL_DEFS@,${LOCAL_DEFS},
s,@SHOBJ_CC@,${SHOBJ_CC},
s,@SHOBJ_CFLAGS@,${SHOBJ_CFLAGS},
s,@SHOBJ_LD@,${SHOBJ_LD},
s,@SHOBJ_LDFLAGS@,${SHOBJ_LDFLAGS//,/\\,},
s,@SHOBJ_XLDFLAGS@,${SHOBJ_XLDFLAGS//,/\\,},
s,@SHOBJ_LIBS@,${SHOBJ_LIBS},
s,@SHOBJ_STATUS@,${SHOBJ_STATUS},
s#@CC@#${CC}#
s#@CFLAGS@#${CFLAGS}#
s#@LOCAL_CFLAGS@#${LOCAL_CFLAGS}#
s#@DEFS@#${DEFS}#
s#@LOCAL_DEFS@#${LOCAL_DEFS}#
s#@SHOBJ_CC@#${SHOBJ_CC}#
s#@SHOBJ_CFLAGS@#${SHOBJ_CFLAGS}#
s#@SHOBJ_LD@#${SHOBJ_LD}#
s#@SHOBJ_LDFLAGS@#${SHOBJ_LDFLAGS}#
s#@SHOBJ_XLDFLAGS@#${SHOBJ_XLDFLAGS}#
s#@SHOBJ_LIBS@#${SHOBJ_LIBS}#
s#@SHOBJ_STATUS@#${SHOBJ_STATUS}#
" "$src_dir"/Makefile.in > "$src_dir"/Makefile

BIN
terminal_output.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@@ -25,12 +25,22 @@ create_executable() {
}
@test "rehash in progress" {
export PYENV_REHASH_TIMEOUT=1
mkdir -p "${PYENV_ROOT}/shims"
touch "${PYENV_ROOT}/shims/.pyenv-shim"
run pyenv-rehash
assert_failure "pyenv: cannot rehash: ${PYENV_ROOT}/shims/.pyenv-shim exists"
}
@test "wait until lock acquisition" {
export PYENV_REHASH_TIMEOUT=5
mkdir -p "${PYENV_ROOT}/shims"
touch "${PYENV_ROOT}/shims/.pyenv-shim"
bash -c "sleep 1 && rm -f ${PYENV_ROOT}/shims/.pyenv-shim" &
run pyenv-rehash
assert_success
}
@test "creates shims" {
create_executable "2.7" "python"
create_executable "2.7" "fab"

View File

@@ -2,6 +2,17 @@
load test_helper
@test "shell integration disabled" {
run pyenv shell
assert_failure "pyenv: shell integration not enabled. Run \`pyenv init' for instructions."
}
@test "shell integration enabled" {
eval "$(pyenv init -)"
run pyenv shell
assert_success "pyenv: no shell-specific version configured"
}
@test "no shell version" {
mkdir -p "${PYENV_TEST_DIR}/myproject"
cd "${PYENV_TEST_DIR}/myproject"

View File

@@ -9,7 +9,7 @@ setup() {
create_file() {
mkdir -p "$(dirname "$1")"
touch "$1"
echo "system" > "$1"
}
@test "detects global 'version' file" {

View File

@@ -26,7 +26,7 @@ setup() {
}
@test "detects local file" {
touch .python-version
echo "system" > .python-version
run pyenv-version-origin
assert_success "${PWD}/.python-version"
}

View File

@@ -60,12 +60,11 @@ create_executable() {
}
@test "doesn't include current directory in PATH search" {
export PATH="$(path_without "kill-all-humans")"
mkdir -p "$PYENV_TEST_DIR"
cd "$PYENV_TEST_DIR"
touch kill-all-humans
chmod +x kill-all-humans
PYENV_VERSION=system run pyenv-which kill-all-humans
PATH="$(path_without "kill-all-humans")" PYENV_VERSION=system run pyenv-which kill-all-humans
assert_failure "pyenv: kill-all-humans: command not found"
}
@@ -91,9 +90,8 @@ OUT
}
@test "no executable found for system version" {
export PATH="$(path_without "py.test")"
PYENV_VERSION=system run pyenv-which py.test
assert_failure "pyenv: py.test: command not found"
PATH="$(path_without "rake")" PYENV_VERSION=system run pyenv-which rake
assert_failure "pyenv: rake: command not found"
}
@test "executable found in other versions" {