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

Compare commits

...

1005 Commits

Author SHA1 Message Date
Yamashita, Yuu
fab6a0fcd1 v20151210 2015-12-10 08:27:05 +00:00
Josh Friend
c4968f7a48 Add CPython 3.4.4rc1 2015-12-09 16:09:18 -05:00
Josh Friend
d0e9cd7d7e Remove old 2.7.11 release candidate 2015-12-09 16:09:18 -05:00
Yamashita, Yuu
3185dee8a2 Copied OPENSSL_NO_SSL3 patch to 2.7 series (#495) 2015-12-09 01:18:41 +00:00
Yamashita, Yuu
05615587d0 Merge pull request #495 from catlee/master
Adding SSL patch to build 2.7.3 on Debian
2015-12-09 08:58:23 +09:00
Yamashita, Yuu
132179d0ca Merge pull request #498 from ipfans/master
Add CPython 3.5.1
2015-12-07 16:14:31 +09:00
ipfans
b6cdfcf5dc Upgrade OpenSSL to 1.0.1q 2015-12-07 15:13:04 +08:00
ipfans
c78f079078 Add CPython 3.5.1 2015-12-07 14:59:48 +08:00
Yamashita, Yuu
2767461235 Use PYENV_BOOTSTRAP_VERSION during python-build if declared 2015-12-07 05:10:11 +00:00
Yamashita, Yuu
20432dda88 Add a workaround for Anaconda's curl issue
Anaconda's `curl` doesn't work with HTTPS on platfroms where
`/etc/pki/tls/certs/ca-bundle.crt` isn't available.
2015-12-07 04:22:41 +00:00
Yamashita, Yuu
f27e3ebb94 Update OpenSSL version for 2.7.11 (#496) 2015-12-07 01:38:50 +00:00
Yamashita, Yuu
7718afbca2 Merge branch 'issue496' 2015-12-07 10:35:11 +09:00
Yamashita, Yuu
28766056b2 Update OpenSSL to 1.0.1q (fixes #496) 2015-12-07 01:23:14 +00:00
Chris AtLee
dbf8b2fb65 Adding SSL patch to build 2.7.3 on Debian 2015-12-06 09:53:05 -05:00
Yamashita, Yuu
aaec35859d Merge pull request #494 from zmwangx/cpython-2.7.11
Add CPython 2.7.11
2015-12-06 10:10:59 +09:00
Zhiming Wang
54f7944ae2 Add CPython 2.7.11 2015-12-05 17:08:29 -08:00
Yamashita, Yuu
96bfa1532d Skip virtualenv aliases as well (yyuu/pyenv-virtualenv#126) 2015-12-02 09:52:33 +00:00
Yamashita, Yuu
ebd6c1aee3 Add comments to Anaconda executables (#491) 2015-11-29 23:50:30 +00:00
Yamashita, Yuu
a8f8f0ae0c Merge pull request #491 from yyuu/anaconda-which-ext
Add a default hook for Anaconda to look for original `$PATH`
2015-11-28 12:51:00 +09:00
Yamashita, Yuu
a50d0492b3 Merge pull request #490 from ReadmeCritic/master
Update README URLs based on HTTP redirects
2015-11-28 12:50:31 +09:00
Yamashita, Yuu
a6dbb11dca Add a default hook for Anaconda to look for original $PATH 2015-11-28 03:47:00 +00:00
ReadmeCritic
43abe13db9 Update README URLs based on HTTP redirects 2015-11-27 19:12:54 -08:00
Yamashita, Yuu
465bd1f3e8 v20151124 2015-11-24 01:08:46 +00:00
Yamashita, Yuu
96be89835e Add PyPy 4.0.1 (fixes #489) 2015-11-24 01:01:33 +00:00
Josh Friend
3428431aef Add CPython 2.7.11 RC1 2015-11-22 11:50:21 -05:00
Yamashita, Yuu
8841f7788d Merge pull request #487 from yyuu/rbenv-20151121
rbenv 20151121
2015-11-21 13:28:26 +09:00
Yamashita, Yuu
8da3749648 Merge remote-tracking branch 'rbenv/master' into rbenv-20151121 2015-11-21 04:21:14 +00:00
Yamashita, Yuu
94bce8abf8 Merge pull request #486 from yyuu/ruby-build-20151028
Import changes from ruby-build v20151028
2015-11-21 12:12:26 +09:00
Yamashita, Yuu
f62ee1a4db Import changes from ruby-build v20151028 2015-11-21 02:59:36 +00:00
Yamashita, Yuu
e7b0d99601 Merge pull request #485 from brittag/readme-improvements
Readme improvements: correcting errors and clarifying Homebrew instructions
2015-11-21 10:44:41 +09:00
Mislav Marohnić
5fb9c84e14 Merge pull request #822 from jasonkarns/completion
Add --help and tab completion to rbenv-versions
2015-11-20 18:37:54 +01:00
Mislav Marohnić
d138f5f5e4 Merge pull request #826 from jasonkarns/fail-helper
Extract `fail` helper function
2015-11-20 18:29:34 +01:00
Jason Karns
3ddedc021a Extract abort helper function
fail helper prints message to stderr and exits 1
(prefixes 'rbenv: ' if given a string arg)
2015-11-20 10:25:46 -05:00
Mislav Marohnić
a22adc77eb Merge pull request #827 from jasonkarns/fix-exec-test
Fix leftover .ruby-version file from exec.bats
2015-11-20 16:00:49 +01:00
Jason Karns
a3ff3adc39 create local .ruby-version file in test dir
This new test was creating an (intentionally invalid) .ruby-version file
in current working directory; typically the rbenv project dir.
Immediately after test runs, I had a leftover .ruby-version file.

The version-file tests create and cd into the RBENV_TEST_DIR as part of
setup(). I'm using the same directory for this test fix, but am only
using it for this particular test. None of the other exec tests seem to
need to be in a temp test dir, so no use putting it in setup().
2015-11-20 09:51:44 -05:00
Jason Karns
2dcb9d0611 completions for rbenv-init 2015-11-20 09:20:01 -05:00
Jason Karns
a6cb4b6317 consistent completions for rbenv-help 2015-11-20 09:15:06 -05:00
Jason Karns
2f917312f1 completions for rbenv-completions 2015-11-20 09:12:53 -05:00
Jason Karns
d1f8081d1c completions for rbenv-versions 2015-11-20 09:12:47 -05:00
Mislav Marohnić
63671a1479 Merge pull request #824 from jasonkarns/help-completion
Handle --help flag for subcommands
2015-11-20 14:28:39 +01:00
Jason Karns
d7ca2aba2a add --help to subcommand completions
ensure subcommand exists, then include --help in its completion output
2015-11-19 12:05:19 -05:00
Jason Karns
2c4dd63f77 handle --help for subcommands
If subcommand is provided (and exists) and its first arg is -h/--help,
go ahead and intercept the call; redirecting to rbenv-help <subcommand>

This means subcommands and plugins need not handle --help flag
themselves
2015-11-19 12:05:18 -05:00
Jason Karns
06e4f1b682 explicit --version flag
Without it, it falls back to `--version` being executed as a subcommand,
which works but isn't obvious
2015-11-19 11:14:59 -05:00
Mislav Marohnić
825de5d2e3 Fix argument handling in main rbenv command
- Explicitly asking for help with `-h` or `--help` exits with 0 status
  and displays help on stdout.

- Not providing any arguments to rbenv results in failure status and
  displays version and help on stderr.
2015-11-19 01:52:48 +01:00
Britta
6e3dd80f15 Readme fixes: tiny copyedits
Removing an extra comma in "There are some systems, where the", and adding another "the" to "toward the end of shell configuration file".
2015-11-18 16:50:03 -08:00
Britta
d5a5cd1aae Readme fixes: clarifying Homebrew instructions
Adding a tip for how to view the Homebrew package caveats again if you skipped reading them.

Directing readers to additional next steps after installing pyenv via Homebrew.
2015-11-18 16:48:57 -08:00
Britta
195942f22e Changing "neckbeard" to "advanced"
Many advanced users who enjoy reading detailed documentation may not really think of themselves as "neckbeards", even in a jokey way, so naming this section with a simple, familiar (and easy-to-translate!) name may encourage more people to read it. :)
2015-11-17 16:51:03 -08:00
Britta
daaa1aab6d Readme fixes: correcting errors
Correcting instructions for installing Python versions (removing "download and unpack the source").

Fixing links to #pyenv-shell, #pyenv-local, and #pyenv-global - linking them to the appropriate sections of the COMMANDS.md page.
2015-11-17 16:35:35 -08:00
Mislav Marohnić
8f87f43e22 Fix broken version-dependent test
Broken in dcca61c0bc
2015-11-14 12:21:16 +00:00
Mislav Marohnić
c30e096a54 Merge branch 'which-fixes' 2015-11-14 10:42:41 +00:00
Mislav Marohnić
3405c4d03c Fix error message when command is not found for "system" version
If `foo` didn't exist and `RBENV_VERSION=system rbenv which foo` was
called, the error message used to be misleading:

    rbenv: version `system' is not installed

Instead, have the error message simply say that the command was not found.

Fixes #770
2015-11-13 23:10:09 -05:00
Mislav Marohnić
09b18cf6f5 Add test for version-origin when version not found in rbenv-exec 2015-11-13 23:09:12 -05:00
Mislav Marohnić
fcedf169fb Merge pull request #819 from blueyed/fix-path_without
tests: fix path_without to handle /bin properly
2015-11-13 18:01:53 -05:00
Mislav Marohnić
14655a43c8 Merge pull request #821 from jasonkarns/help-completion
add completion block for rbenv-help
2015-11-13 17:37:09 -05:00
Jason Karns
8c3cab61c7 add completion block for rbenv-help 2015-11-13 15:06:29 -05:00
Daniel Hahler
6296bf3f8b tests: fix path_without to handle /bin properly
I was seeing /bin being left.  This patch fixes it by anchoring the search
pattern with ':' on both sides.
2015-11-12 21:20:00 +01:00
Yamashita, Yuu
9ca7de5b6c Merge pull request #477 from jimmywan/miniconda-3.18.3
Add miniconda*-3.18.3.
2015-11-11 07:30:01 +09:00
jimmywan
3d1c38f1a8 Add miniconda*-3.18.3. 2015-11-10 22:26:28 +00:00
Yamashita, Yuu
12ad6f670b Merge pull request #471 from yyuu/activate-ng
List Anaconda-style virtual environments as a version in pyenv
2015-11-05 18:42:03 +09:00
Yamashita, Yuu
9163c46568 v20151105 2015-11-05 09:21:08 +00:00
Yamashita, Yuu
204ded5a55 Add Portable PyPy 4.0 (fixes #472) 2015-11-05 09:19:23 +00:00
Yamashita, Yuu
3937dc3618 list virtual environments created by anaconda/miniconda as a version in pyenv 2015-11-04 15:00:48 +00:00
Josh Friend
8f25eabbbc Add anaconda2-2.4.0 and anacondaa3-2.4.0 2015-11-04 08:43:32 -05:00
Yamashita, Yuu
cb65df8bec Specify branch for build status 2015-11-04 12:14:10 +00:00
Yamashita, Yuu
0daf04a71b v20151103 2015-11-03 13:31:28 +00:00
Yamashita, Yuu
52544e6956 Remove useless if since portable-pypy 4.0.0 binary is still not available (#463) 2015-11-03 13:24:45 +00:00
Yamashita, Yuu
39a6b097f7 Add PyPy 2.6.1 freebsd64 binary 2015-11-01 02:12:47 +00:00
Yamashita, Yuu
f19ab5fea2 Remove PyPy 4.0.0 freebsd64 binary since it's not available for now (#463)
https://bitbucket.org/pypy/pypy/issues/2178/
2015-11-01 02:10:00 +00:00
Yamashita, Yuu
6c3dd0a24f Add PyPy 4.0.0 (fixes #463)
The binaries of portable-pypy are not yet available, though.
2015-10-30 02:54:08 +00:00
Mislav Marohnić
c18a3f9042 Merge pull request #814 from m-o-e/never-use-hardlinks
Never use hardlinks. Never.
2015-10-29 17:25:26 +01:00
moe
f6c1e5220a Never use hardlinks. Never. 2015-10-28 21:35:39 +01:00
Mislav Marohnić
d740406daf Merge pull request #812 from sstephenson/skip-aliases
Add `rbenv versions --skip-aliases` option
2015-10-27 21:11:24 +01:00
Mislav Marohnić
7026e529c7 Fix realpath fallback in rbenv hooks
The symlinks weren't correctly resolved if they were pointing to a
single path component, such as `ln -s foo bar`.
2015-10-27 21:05:10 +01:00
Mislav Marohnić
e80886e9be Add rbenv versions --skip-aliases option
Useful in combination with `--bare` to list just the unique version
numbers without the extra directory entries that are symlinks to other
version numbers in the same directory.
2015-10-27 21:05:10 +01:00
Mislav Marohnić
6e02b944f7 Use $BASH_SOURCE instead of $0
BASH_SOURCE might be more reliable.
2015-10-27 20:55:23 +01:00
Mislav Marohnić
bb129a782b Merge branch 'bundler-hook-recursion'
Closes #809, references #806
2015-10-27 10:54:13 +01:00
Roman Sandler
d508822f9a Make sure the alias statement only executes if there is not already an alias in place 2015-10-27 10:53:51 +01:00
Mislav Marohnić
6913fee89a If there is .bashrc but no .bash_profile, recommend the former
This is for Linux desktop platforms that have Terminal application
configured to start shells in interactive but not login mode. Creating a
`~/.bash_profile` would also cause `~/.profile` to not run, which might
be a problem on Ubuntu which ships with a default `~/.profile`.
2015-10-26 15:45:52 +01:00
Mislav Marohnić
074161f9c1 Merge pull request #806 from sstephenson/bundle-rehash
Avoid running `rbenv rehash` multiple times during `bundle install`
2015-10-25 18:36:20 +01:00
Mislav Marohnić
2b0f16757a Only rehash if bundle install actually created new executables
This avoids running `rbenv rehash` after installing libraries that don't
have executables, or after a no-op `bundle install` that didn't install
anything.
2015-10-25 18:31:50 +01:00
Mislav Marohnić
7b289bcee6 Avoid running rbenv rehash multiple times during bundle install
This is an attempt to work around the fact that Rubygems post_install
hooks may happen multiple times per single `bundle install` and ideally
we want `rbenv rehash` to run only once if new gems have been installed.
However, due to Bundler parallelism using `fork` on platforms that
support it, it's impossible for the child processes to communicate with
the master process to signal it to run `rbenv rehash` in the end.

This hooks into Bundler `install` command and runs `rbenv rehash` after
all gems have finished installing, but only if the install location was
system gems location and not a custom path (such as per-project
`vendor/bundle`).

This is limited because we can't tell whether any gems have been
installed at all, let alone do those gems have executables. However it's
better than having multiple `rbenv rehash` being run in parallel and
outputting confusing error messages as a result.
2015-10-25 17:47:01 +01:00
Mislav Marohnić
8dcd715ede Merge branch 'edge-version' 2015-10-25 17:01:04 +01:00
Mislav Marohnić
dcca61c0bc Improve rbenv --version git checkout discovery
When `rbenv --version` is called, this now happens:

1. It changes into the directory where `libexec/rbenv--version` resides
   and checks if it's a checkout of the rbenv repo (as opposed to
   Homebrew checkout or something else). Then it reads the git revision.

2. If that failed, change to `$RBENV_ROOT` directory and repeat step 1.
2015-10-25 16:54:38 +01:00
Josh Friend
155012911c Add Jython 2.7.1 beta2
http://fwierzbicki.blogspot.co.uk/2015/10/jython-271-beta2-released.html
2015-10-20 19:47:52 -04:00
Yamashita, Yuu
bdfe6d383f Add shebang workaround for Jython 2.7.x (fixes #458) 2015-10-18 11:47:12 +09:00
Yamashita, Yuu
efdba2d76b Show message about pip/setuptools for 3.0.1 on OS X (fixes #456) 2015-10-17 10:42:52 +00:00
Mislav Marohnić
0f44c57d08 Fix eval'ing multiline sh-* command output with bash 2015-10-12 01:33:17 +02:00
Mislav Marohnić
efb187f26f Merge pull request #663 from kevinburke/use-command
Use `command` to run rbenv rehash
2015-10-11 04:04:46 +02:00
Mislav Marohnić
c101052a7f Fix eval'ing multiline sh-* command output with fish 2015-10-10 21:48:40 +02:00
Mislav Marohnić
51a1ee06e4 Merge commit '5c1094a' from #529
Closes #529
2015-10-10 19:17:18 +02:00
Mislav Marohnić
8a0555f8ef Init RBENV_TEST_DIR properly and only once during test setup 2015-10-10 19:02:11 +02:00
Mislav Marohnić
55f692ba9c Merge commit 'refs/pull/562/head' of https://github.com/sstephenson/rbenv 2015-10-10 18:42:36 +02:00
Mislav Marohnić
3a265c1af9 Unset XDG_CONFIG_HOME and related variables during tests
If set by the user's environment, `git config --global` writes will go
to that destination instead of temporary $HOME. We definitely don't want
that.

Fixes #742
2015-10-10 18:39:23 +02:00
Mislav Marohnić
c43928a8e4 Merge pull request #731 from blueyed/init-no-basename-for-shell
rbenv-init: do not use basename for $shell
2015-10-10 18:33:52 +02:00
Mislav Marohnić
c6cf4e18b8 Merge pull request #682 from evaryont/patch-1
Include gems dir in .gitignore
2015-10-10 17:22:55 +02:00
Yamashita, Yuu
19c02bf39c v20151006 2015-10-06 14:12:04 +00:00
Josh Friend
d462e158e2 Add Jython 2.7.1b1 2015-09-30 10:17:35 -04:00
Yamashita, Yuu
3ecc94fa38 Merge pull request #447 from chenfengyuan/master
add proxy usage note
2015-09-24 22:49:26 +09:00
Fengyuan Chen
53bc95314c add proxy usage note 2015-09-24 21:46:34 +08:00
Yamashita, Yuu
db325cc66d Merge branch 'use-homebrew-openssl' 2015-09-23 14:33:41 +09:00
Yamashita, Yuu
28c40ece8d Fix broken tests 2015-09-23 14:23:31 +09:00
Yamashita, Yuu
34f938fdb9 --libdir doesn't work nicely when building OpenSSL (#429) 2015-09-23 14:17:47 +09:00
Yamashita, Yuu
e034c80388 Update Python versions in sample image 2015-09-23 00:29:49 +09:00
Yamashita, Yuu
948d1f4ca7 Merge branch 'blueyed-pyenv-rehash-python-glub' (fixes #379, #404) 2015-09-22 15:28:15 +09:00
Yamashita, Yuu
438e828eb5 add tests for PYENV_FILE_ARG 2015-09-22 15:28:00 +09:00
Yamashita, Yuu
e52ed97fff install OpenSSL on OS X if no proper versionn is available (#429) 2015-09-21 06:26:03 +00:00
Yamashita, Yuu
43eb33e929 Merge pull request #444 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-09-21 11:48:39 +09:00
The Gitter Badger
10ab381fb6 Add Gitter badge 2015-09-21 02:43:40 +00:00
Josh Friend
c452da8084 v20150913 2015-09-13 11:03:52 -04:00
Josh Friend
e6090f00f3 Add CPython 3.5.0
Closes #440
2015-09-13 10:55:55 -04:00
Mislav Marohnić
9e664b5d27 Suggest that rbenv should be loaded at end of shell rc file
Closes #725
2015-09-12 15:27:32 -07:00
Yamashita, Yuu
6868d3053a Merge pull request #439 from recruit-mtl/master
Fixed anaconda3 repo's paths. #438
2015-09-11 15:42:09 +09:00
kasajei
10d3123caa Fixed anaconda3 repo's paths. 2015-09-11 15:37:53 +09:00
Yamashita, Yuu
2d16c638e9 Merge pull request #437 from zmwangx/cpython-3.5.0rc4
Add CPython 3.5.0rc4
2015-09-09 23:30:39 +09:00
Josh Friend
3ae068b492 Add CPython 3.5.0rc4 2015-09-09 10:19:24 -04:00
Zhiming Wang
824f7e6b21 Add CPython 3.5.0rc4 2015-09-09 22:15:00 +08:00
Josh Friend
5d247793e6 Add CPython 3.5.0rc3 2015-09-07 22:27:36 -04:00
Josh Friend
ed700c0185 Merge pull request #435 from jimmywan/miniconda-3.16.0
Add miniconda-3.16.0 and miniconda3-3.16.0
2015-09-01 15:18:49 -04:00
Josh Friend
193e64b6b2 v20150901 2015-09-01 13:59:13 -04:00
Josh Friend
5ba585769b Add pypy2.6.1 portable 2015-09-01 13:57:15 -04:00
Jimmy Wan
5540e235ab Add scripts for miniconda*-3.16.0. 2015-09-01 16:35:19 +00:00
Josh Friend
c9268bb0dc Add PyPy 2.6.1
Will add portable when squeaky-pl/portable-pypy#17 is closed.
2015-08-31 14:32:22 -04:00
Josh Friend
5ddc14704c Add 3.5.0rc2 2015-08-25 18:53:13 -04:00
Josh Friend
5fcb4cf0bf Remove 3.5.0 betas 2015-08-25 18:52:59 -04:00
Yamashita, Yuu
0f288f2462 Import changes from ruby-build v20150818 2015-08-25 15:37:31 +09:00
Yamashita, Yuu
0c81c97926 remove patch that cannot be applied to CPython 3.1.1 and 3.1.2 (#421) 2015-08-18 10:57:26 +09:00
Yamashita, Yuu
5ff089de9c add PyPy-STM 2.3 and 2.5.1 (fixes #428) 2015-08-16 23:12:30 +09:00
Yamashita, Yuu
459725df3c Merge branch 'disable-fortify-source' (fixes #422) 2015-08-16 13:37:19 +09:00
Yamashita, Yuu
ec3b7d815d add fortify_crash_workaround patch for CPython (>= 2.4, <= 2.4.3) (#422) 2015-08-16 13:29:44 +09:00
Yamashita, Yuu
afe86aef52 disable _FORTITY_SOURCE to fix build of CPython (>= 2.4, <= 2.4.3) (#422) 2015-08-16 13:17:38 +09:00
Yamashita, Yuu
461ae27a19 add patches for 3.1, 3.1.1, 3.1.2 to fix build with recent version of openssl (fixes #421) 2015-08-15 13:34:34 +09:00
Yamashita, Yuu
c0f691fc57 Merge pull request #424 from zmwangx/python-3.5.0rc1
Add Python 3.5.0rc1
2015-08-11 10:18:43 +09:00
Zhiming Wang
ffc899475a Add Python 3.5.0rc1
https://www.python.org/downloads/release/python-350rc1/
2015-08-10 18:14:25 -07:00
Yamashita, Yuu
57d1c9d6be Merge pull request #419 from takluyver/35b4
Add Python 3.5.0b4
2015-07-31 07:02:57 +09:00
Thomas Kluyver
9d488c9760 Add Python 3.5.0b4
I copied and modified the file for beta 3.
2015-07-30 13:30:52 -07:00
Yamashita, Yuu
3db1ac13d2 Merge pull request #414 from jimmywan/master
Add miniconda-3.10.1 and miniconda3-3.10.1.
2015-07-23 08:03:13 +09:00
Jimmy Wan
880fa46156 Add miniconda-3.10.1 and miniconda3-3.10.1. 2015-07-22 20:36:04 +00:00
Yamashita, Yuu
24ad375a35 Merge branch 'issue411' 2015-07-22 10:49:49 +09:00
Yamashita, Yuu
7f32e96c28 v20150719 2015-07-19 13:07:24 +09:00
Yamashita, Yuu
294738842c pin pip version to 1.5.6 for python 3.1.5 (fixes #351) 2015-07-19 12:33:56 +09:00
Yamashita, Yuu
ce671398f8 Ignore user's site-packages on ensurepip/get-pip (#411)
https://www.python.org/dev/peps/pep-0370/
2015-07-18 14:22:58 +09:00
Yamashita, Yuu
a3bea25ddc Use original CPython repository as the source of CPython *-dev versions (#409) 2015-07-18 13:23:13 +09:00
Yamashita, Yuu
1a66a9141b Build 3.5-dev from "3.5" branch (#409) 2015-07-18 13:22:36 +09:00
Yamashita, Yuu
78c1d7186d CPython 3.1 branch is no longer maintained (#409) 2015-07-18 13:21:20 +09:00
Yamashita, Yuu
9b60d73ec8 Merge pull request #413 from BanzaiMan/ha-feature-py36
Add `3.6-dev`
2015-07-18 11:48:53 +09:00
Hiro Asari
8a9d2557a0 Add 3.6-dev 2015-07-17 22:14:18 -04:00
Yamashita, Yuu
2a79db00b0 Merge pull request #412 from BanzaiMan/patch-1
Point to the canonical Python repository
2015-07-18 09:47:46 +09:00
Hiro Asari
3e7839c5b7 Point to the canonical Python repository
BitBucket mirror is no longer up to date with the canonical repository.

Fixes https://github.com/yyuu/pyenv/issues/409.
2015-07-17 20:46:59 -04:00
Mislav Marohnić
3b6faa8531 Merge pull request #756 from blueyed/version-origin-with-non-installed
Display version origin with non-installed versions
2015-07-17 11:33:56 -07:00
Daniel Hahler
e3982fae38 Display version origin with non-installed versions
This is useful as an indicator where it is coming from.
2015-07-17 17:10:33 +02:00
Daniel Hahler
493f036928 shims: handle symlinked scripts, via new PYENV_FILE_ARG
`PYENV_FILE_ARG` is used here to make use of `abs_dirname` later in
`libexec/pyenv`.

Fixes https://github.com/yyuu/pyenv/issues/404
2015-07-08 18:59:22 +02:00
Daniel Hahler
af438abeae shims: look for python*
This is required for the shims to handle `#!/usr/bin/env python3` in a
shebang, just like `python` is handled currently: it will set
`PYENV_DIR` to the root of the invoked script, which is required for a
`.python-version` script to get picked up from there.

This was rejected for rbenv, where it does not make much sense
(https://github.com/sstephenson/rbenv/pull/735).

Ref: https://github.com/yyuu/pyenv/pull/368#issuecomment-102806837
2015-07-08 18:59:22 +02:00
Yamashita, Yuu
36c5cbf74f Add Anaconda/Anaconda3 2.3.0 2015-07-08 15:49:58 +09:00
Yamashita, Yuu
608ad6f9d0 Merge pull request #402 from mrjefftang/master
2.7.10 - Stop '/Library/Python/X.X/site-packages' from being added to sys.path
2015-07-08 00:17:54 +09:00
Jeff Tang
7a6eb38a36 add patches to stop '/Library/Python/X.X/site-packages' from being added
to sys.path
2015-07-07 11:14:14 -04:00
Yamashita, Yuu
cd40335ba4 Merge pull request #400 from transcranial/master
Add python 3.5.0b3
2015-07-06 07:29:42 +09:00
Leon Chen
26450fd0ab Add python 3.5.0b3 2015-07-05 17:21:31 -04:00
Yamashita Yuu
22ecefd572 Use custom MACOSX_DEPLOYMENT_TARGET if defined (fixes #312) 2015-06-28 13:50:45 +09:00
Yamashita Yuu
abae52ae20 Add tests for some of python-build specific features 2015-06-28 13:34:59 +09:00
Yamashita Yuu
114063495f pyenv-prefix should return proper prefix of system version (fixes #391) 2015-06-27 01:07:18 +09:00
Yamashita, Yuu
7b797c3797 Merge pull request #393 from nikolas/patch-1
fix typo in readme
2015-06-23 08:19:50 +09:00
Nik Nyby
8e276a009e fix typo in readme 2015-06-22 18:54:03 -04:00
Yamashita Yuu
4198280142 Fix download URL of portable PyPy 2.6 (fixes #389) 2015-06-10 21:41:20 +09:00
Mislav Marohnić
83ac0fbd94 Merge pull request #747 from sstephenson/uninstall-instructions
Provide uninstall instructions in the README
2015-06-10 00:22:47 +02:00
Mislav Marohnić
46fbc5414a Provide uninstall instructions in the README 2015-06-09 23:31:01 +02:00
Mislav Marohnić
43b28caa94 Fix discovering .ruby-version files in root directory
It's not that this is a preferred way to set a global version (one
should use `rbenv global <version>` instead), but this fixes the
function purely for correctness: all parent directories should be
scanned, even the root directory.

Fixes #745
2015-06-09 17:24:15 +02:00
Josh Friend
5cb9c9af2e v20150601 2015-06-01 21:48:44 -04:00
Josh Friend
d6230578ec Merge pull request #384 from yyuu/pypy-260
Add PyPy 2.6.0
2015-06-01 21:32:48 -04:00
Josh Friend
62bf3d9b61 Add PyPy 2.5.1 portable
related: #346
2015-06-01 21:25:14 -04:00
Josh Friend
55e6e7143a Add PyPy 2.6.0
fixes #383
2015-06-01 21:24:58 -04:00
Josh Friend
1e78acb701 Add python 3.5.0b2 2015-06-01 07:18:36 -04:00
Yamashita Yuu
648afe05a9 Import changes from ruby-build v20150519 2015-05-27 01:08:12 +09:00
Yamashita Yuu
9aee57d965 Fix test for adding shims in fish 2015-05-27 00:54:19 +09:00
Yamashita Yuu
ed684c239c Fix inverted condition for --altinstall of ensurepip (#255) 2015-05-27 00:49:23 +09:00
Yamashita Yuu
fe934642c5 Skip installint setuptools by ez_setup.py explicitly (fixes #381)
`pip` will install `setuptools` automatically.
2015-05-26 23:49:46 +09:00
Josh Friend
7c4c1757f7 add 3.5.0 beta1, remove alpha versions 2015-05-25 23:59:48 -04:00
Yamashita Yuu
1b066598ce v20150524 2015-05-24 10:53:17 +09:00
Yamashita Yuu
cc94ad39f1 Add 2.7.10 (fixes #380) 2015-05-24 10:40:47 +09:00
Daniel Hahler
c754efc44b Merge pull request #378 from blueyed/version-file-read-without-type
pyenv-version-file-read: use sed instead of type/head/awk
2015-05-18 16:37:09 +02:00
Yamashita, Yuu
46ffb0c8df Merge pull request #290 from blueyed/version-handle-missing-better
Improve `pyenv version`, if there is one missing
2015-05-17 12:05:03 +09:00
Yamashita, Yuu
70cce28ba3 Merge pull request #368 from blueyed/pip-rehash-for-versions
pip-rehash: handle versions in commands, like "pip2" and "pip3.4"
2015-05-17 11:35:31 +09:00
Daniel Hahler
9156191168 pyenv-version-file-read: use sed/cut instead of type/head/awk
I was seeing the following occasionally in scripts:

> …/.pyenv/libexec/pyenv-version-file-read: line 12: type: write error: Broken pipe

This patch hopefully improves/fixes this, and it seems better anyway to
just use sed here.
2015-05-16 23:02:00 +02:00
Yamashita, Yuu
5402ce423b Merge pull request #376 from thomasjo/tj-fix-bad-anaconda-urls
Fix broken Anaconda3 2.2.0 URLs
2015-05-12 20:06:11 +09:00
Thomas Johansen
2ea2e7558d Fix broken Anaconda3-2.2.0 URLs 2015-05-12 12:52:41 +02:00
Yamashita, Yuu
9d8da866f1 Merge pull request #375 from kuanyili/anaconda
Add Anaconda/Anaconda3 2.2.0 and Miniconda/Miniconda3 3.9.1 definitions
2015-05-12 07:30:51 +09:00
Kuan-Yi Li
70fa356585 Add Miniconda/Miniconda3 3.9.1 definitions 2015-05-12 01:50:29 +08:00
Kuan-Yi Li
31fb290de2 Add Anaconda/Anaconda3 2.2.0 definitions 2015-05-12 01:19:04 +08:00
Daniel Hahler
4ea7d0849b rbenv-init: do not use basename for $shell
This can be done using bash directly.
2015-05-10 16:17:35 +02:00
Josh Friend
e285f2e5b1 use full path when installing a jar 2015-05-04 10:35:34 -04:00
Josh Friend
1d31529b46 v20150404 2015-05-04 08:25:25 -04:00
Josh Friend
6f40dae3d7 Merge pull request #371 from yyuu/fix-py3.1-pip
Fix Pip install on python 3.1.x
2015-05-04 08:18:22 -04:00
Josh Friend
d2794f54e5 add a few missing python 3.1.x releases 2015-05-04 08:13:07 -04:00
Josh Friend
bc03106cee pin pip version to 1.5.6 for python 3.1 (fixes #351) 2015-05-04 08:12:38 -04:00
Yamashita, Yuu
bf93b90282 Merge pull request #370 from joshfriend/jython-2-7-0
Add jython 2.7.0
2015-05-04 13:46:29 +09:00
Josh Friend
7b8bd11416 fix jython pip and add warning about JAVA_HOME for osx/windows users 2015-05-04 00:37:41 -04:00
Josh Friend
f623231734 Add jython 2.7.0 2015-05-03 22:24:36 -04:00
Daniel Hahler
481198d255 pip-rehash: handle versions in commands, like "pip2" and "pip3.4"
Fixes https://github.com/yyuu/pyenv/issues/367
2015-04-30 00:49:53 +02:00
Yamashita, Yuu
50d5de4731 Merge pull request #364 from joshfriend/python-3-5-0-a4
Add Python-3.5.0a4
2015-04-21 08:31:21 +09:00
Josh Friend
15977c852d add python3.5.0a4 2015-04-20 18:42:17 -04:00
Mislav Marohnić
5b9e4f0584 Merge pull request #722 from blueyed/fix-test-for-fish-issue-369
Fix test for adding shims in fish
2015-04-20 11:51:51 +02:00
Daniel Hahler
10d5d9a24f tests: fix desc for "can add shims to PATH more than once"
This seems to have not been merged properly.

A similar issue is with the test for fish, which has been submitted as a
PR for rbenv: https://github.com/sstephenson/rbenv/pull/722.
2015-04-20 00:00:04 +02:00
Daniel Hahler
06c1959e78 Fix test for adding shims in fish
Commit e2173df4 (for issue #369) did not handle the fish test properly.

This renames it and fixes the assertion.
2015-04-19 23:53:19 +02:00
Yamashita, Yuu
be037932ca Merge pull request #360 from yyuu/merge-rbenv
Merge rbenv to have a common ancestor for future merges
2015-04-19 18:00:19 +09:00
Yamashita, Yuu
af95960960 Merge pull request #362 from n8henrie/master
Details on multiple Python2 and Python3 versions.
2015-04-19 08:36:33 +09:00
Nathan Henrie
17c153b1c1 Details on multiple Python2 and Python3 versions.
Add detail regarding activating multiple Python2 and Python3 versions simultaneously.
2015-04-17 16:59:04 -06:00
Daniel Hahler
065f5578b1 Merge rbenv parent repository
This merges
4d72eefffc
to build a common ancestor for future merges.

This is branched off f48a5b11d7, which was
the last manual merge.

Discussion / initial idea: https://github.com/yyuu/pyenv/pull/286#issuecomment-66565475

This was done using:

    # Keep our changes for "unmerged, both added"
    for i in $(git status --porcelain | grep '^AA ' | cut -d\  -f2); do
      git checkout --ours $i
      git add $i
    done

    # "git mv" rbenv files to our name, keeping the current contents.
    for i in $(git status --porcelain | grep '^A ' | sed 's/^A  //'); do
      ours=${i//rbenv/pyenv}
      test -f $ours || { echo "Skipping: $i"; continue; }
      git mv -f $i $ours
      git reset HEAD $ours
    done

I've handled the following then manually:

    - rbenv.d/exec/gem-rehash.bash
    - rbenv.d/exec/gem-rehash/rubygems_plugin.rb

This should allow to merge rbenv in the future using:

    git merge rbenv/master -s recursive -X rename-threshold=5%

I am not sure about the rename-threshold, 25% also worked for one file
I've tested.

Conflicts:
	.gitignore
	.travis.yml
	LICENSE
	README.md
	src/Makefile.in
	test/--version.bats
	test/commands.bats
	test/completions.bats
	test/exec.bats
	test/global.bats
	test/help.bats
	test/hooks.bats
	test/init.bats
	test/local.bats
	test/prefix.bats
	test/rehash.bats
	test/run
	test/shell.bats
	test/shims.bats
	test/test_helper.bash
	test/version-file-read.bats
	test/version-file-write.bats
	test/version-file.bats
	test/version-name.bats
	test/version-origin.bats
	test/version.bats
	test/versions.bats
	test/whence.bats
	test/which.bats
2015-04-15 16:23:26 +02:00
Yamashita Yuu
71c9ff565b Added note about where to place pyenv init - in shell configuration file (#313) 2015-04-15 22:41:09 +09:00
Yamashita, Yuu
88270e83e8 Merge pull request #355 from mrjefftang/master
2.7.9 - Stop '/Library/Python/X.X/site-packages' from being added to sys.path
2015-04-15 22:21:08 +09:00
Yamashita, Yuu
b09681c9fb Merge pull request #358 from blueyed/fix-src-configure-sed
src/configure: fix sed expression
2015-04-15 22:02:12 +09:00
Daniel Hahler
80eef69c9a src/configure: fix sed expression
This has been fixed for rbenv in
https://github.com/sstephenson/rbenv/commit/050f750.
2015-04-15 05:35:15 +02:00
Jeff Tang
bc025641c2 add patches to stop '/Library/Python/X.X/site-packages' from being added to sys.path 2015-04-14 15:33:37 -04:00
Kevin Burke
0cd078bae6 Merge branch 'master' into use-command 2015-03-31 18:57:44 -07:00
Yamashita Yuu
5dc3ee95fd Add Jython 2.7 beta4
http://fwierzbicki.blogspot.fi/2015/02/jython-27-beta4-released.html
2015-03-31 11:38:50 +09:00
Yamashita, Yuu
4903223f23 Merge pull request #346 from joshfriend/pypy-251-portable
add pypy-2.5.1 portable version
2015-03-31 11:37:52 +09:00
Josh Friend
1aea75055a fix pypy2.5.1 build folder for i686 2015-03-30 22:07:33 -04:00
Yamashita, Yuu
f30085eaf4 Merge pull request #347 from joshfriend/pypy-251-src-fix
fix url and checksum for pypy-2.5.1-src
2015-03-31 10:06:12 +09:00
Yamashita, Yuu
43d311ef58 Merge pull request #345 from joshfriend/fix-require-distro
Fix require_distro
2015-03-31 09:57:24 +09:00
Yamashita, Yuu
239f4a6b51 Merge pull request #344 from joshfriend/python-3-5-0-a3
add python 3.5.0a3
2015-03-31 09:54:30 +09:00
Josh Friend
1463968a3f fix url and checksum for pypy-2.5.1-src 2015-03-30 16:48:17 -04:00
Josh Friend
97c6a4c932 add pypy-2.5.1 portable version 2015-03-30 15:31:03 -04:00
Josh Friend
5131ef521b fix required distros for pypy-2.5.x 2015-03-30 13:31:05 -04:00
Josh Friend
1d7ce651b0 fix distro version check 2015-03-30 13:29:09 -04:00
Josh Friend
c335f96eac add python 3.5.0a3 2015-03-30 11:53:52 -04:00
Yamashita, Yuu
f0eeac63a3 Merge pull request #341 from joshfriend/fix-pypy-2-5-0
fix pypy-2.5.0-src build directory
2015-03-26 23:20:04 +09:00
Josh Friend
4ebe18a273 fix pypy-2.5.0-src build directory 2015-03-26 10:14:35 -04:00
Yamashita Yuu
ab2aa6d13b v20150326 2015-03-26 23:13:55 +09:00
Yamashita, Yuu
431761d125 Merge pull request #340 from joshfriend/pypy-2-5-1
Add pypy-2.5.1
2015-03-26 23:05:50 +09:00
Josh Friend
e6e858c33b Add pypy-2.5.1 (fixes #338) 2015-03-26 09:25:04 -04:00
derwolfe
e9aa6cf649 doc: make location to add code to more clear 2015-03-18 21:33:15 +01:00
Mislav Marohnić
7ad01b2b48 Document rbenv environment variables
Closes #699, fixes #666 [ci skip]
2015-03-13 01:14:24 -07:00
Mislav Marohnić
8c6b764a4c Merge pull request #706 from mhw/realpath-configure-fix
Fix pattern replacement to allow flags with commas.
2015-03-12 22:18:23 -07:00
Yamashita Yuu
4e30b1a5e1 Merge branch 'portable-pypy' (fixes #326, #329) 2015-03-12 01:31:05 +09:00
Yamashita Yuu
2beef3c455 Add pypy-portable binary to some pypy/pypy3 versions 2015-03-12 01:28:21 +09:00
Yamashita Yuu
797975b742 Add sha256sum to pypy-portable archives (#329) 2015-03-12 01:22:12 +09:00
Yamashita Yuu
527334b401 Add pypy-portable-2.5 (#329) 2015-03-12 01:12:47 +09:00
Mark H. Wilkinson
050f750563 Fix pattern replacement to allow flags with commas. 2015-03-11 13:14:52 +00:00
Yamashita Yuu
292813eca3 Install pypy-portable binaries on unsupported platforms (#329) 2015-03-11 21:01:32 +09:00
Yamashita Yuu
d935a2a994 Merge branch 'portable-pypy' of github.com:olliewalsh/pyenv into portable-pypy 2015-03-11 20:42:56 +09:00
Yamashita, Yuu
d9a7117c3b Merge pull request #328 from joshfriend/python-3-5-0-a2
add python 3.5.0a2
2015-03-10 00:47:31 +09:00
Josh Friend
6596657004 add python 3.5.0a2 2015-03-09 11:46:01 -04:00
Yamashita Yuu
f48a5b11d7 Import recent changes from rbenv 4d72eefffc 2015-03-07 01:01:32 +09:00
Mislav Marohnić
4d72eefffc Merge branch 'fast-travis' 2015-02-28 12:56:49 +13:00
Mislav Marohnić
b6ac87c220 Faster bats clone 2015-02-27 02:17:31 +13:00
Mislav Marohnić
6b908bf39f Opt into fast Travis CI builds 2015-02-27 02:08:38 +13:00
Mislav Marohnić
f87d8762eb Merge pull request #698 from asymmetric/dead-readme-links
Remove dead links to History and License from README
2015-02-27 02:06:16 +13:00
Lorenzo Manacorda
c54fa3731f Remove dead links to Version history and License
Cfr. #688
2015-02-26 11:39:31 +01:00
Yamashita Yuu
efe461d2b4 v20150226 (#323) 2015-02-26 11:35:10 +09:00
Yamashita, Yuu
4540967250 Merge pull request #324 from joshfriend/python-3-5-0-a1
Add python3.5.0a1
2015-02-26 11:15:22 +09:00
Yamashita, Yuu
d14357f64c Merge pull request #323 from joshfriend/python-3-4-3
Add python3.4.3
2015-02-26 11:13:48 +09:00
Josh Friend
d6e1de3e2f add python3.5.0a1 2015-02-25 21:11:02 -05:00
Josh Friend
063717e6b5 Add python3.4.3 🍪 2015-02-25 21:02:44 -05:00
Mislav Marohnić
4d0c289287 Merge pull request #688 from sstephenson/readme-no-history
Remove history, license information from README
2015-02-25 11:50:39 +13:00
Mislav Marohnić
52bb0dcfcf Merge pull request #687 from sstephenson/remove-prefix-warning
Remove warning about extraneous "ruby-" prefix in `.ruby-version`
2015-02-25 11:49:52 +13:00
Yamashita, Yuu
5a05788e61 Merge pull request #318 from ccwang002/conda_new_ver
Add Miniconda / Miniconda3 3.8.3 release
2015-02-21 21:59:02 +09:00
Liang Bo Wang
48335302d9 Add Miniconda[3] 3.8.3 release 2015-02-21 20:33:54 +08:00
Mislav Marohnić
98953c2e14 Merge pull request #696 from aprescott/patch-1
Update README to make rbenv version consistent with previous `versions` output
2015-02-18 11:36:34 +13:00
Adam Prescott
9ae8ba8a29 Update README to make rbenv version consistent with previous versions output
The `rbenv versions` info highlights 1.9.3-p327 as the current version, and
making `rbenv version` sample output match that helps make it clearer.
2015-02-16 10:56:38 -05:00
Mislav Marohnić
1a7f49d2f0 Merge pull request #695 from lyrixx/patch-1
[README] Updated link to bundler.io
2015-02-15 19:05:52 -08:00
Grégoire Pineau
70c6d3f67e [README] Updated link to bundler.io 2015-02-16 04:03:08 +01:00
Yamashita Yuu
9146f44db1 v20150204 2015-02-04 10:33:21 +09:00
Yamashita Yuu
b9ae43a9df Add PyPy 2.5.0 release (fixes #311) 2015-02-04 09:33:37 +09:00
Yamashita Yuu
f6a77549eb Latest pip can't be installed into 3.0.1 (fixes #309) 2015-01-31 16:19:39 +09:00
Yamashita Yuu
cbd246acff Symlink pythonX.Y-config to python-config if python-config is missing (fixes #296) 2015-01-31 16:13:26 +09:00
Yamashita Yuu
9d21169ee0 Fix regression of #255 and add test 2015-01-31 15:35:40 +09:00
Yamashita Yuu
7bceb85067 Update README 2015-01-31 15:24:05 +09:00
Yamashita Yuu
eeb69b1b79 Add note about --enable-shared and RPATH (fixes #217) 2015-01-31 15:14:58 +09:00
Mislav Marohnić
b155380a06 Remove license information from README
The license information is already present in the LICENSE file.
2015-01-29 02:10:28 -08:00
Mislav Marohnić
cd60df52af Remove rbenv version history from README
We won't maintain it anymore. Instead, the changelogs can be obtained
from the project's Releases page: https://github.com/sstephenson/rbenv/releases
2015-01-29 02:09:05 -08:00
Mislav Marohnić
6820704c91 Remove warning about extraneous "ruby-" prefix in .ruby-version
When we started to support reading `.ruby-version` files, we made a
commitment to not support fuzzy version matching. Treating "ruby-2.1.5"
as "2.1.5" is a sort of fuzzy matching, so we put in place a warning
telling you to remove the extraneous "ruby-" prefix popularly used by
other Ruby version managers to denote MRI. (Their logic is that MRI is
"ruby" and other rubies are not "ruby", apparently.)

However, people are often not able to remove the prefix in their
projects because they want to support other coworkers and tools that
sadly still require the prefix, like RubyMine.

So to restore sanity for a big portion of our users, the warning is gone.
2015-01-29 01:55:58 -08:00
Yamashita Yuu
8abefe1fcb v20150124 2015-01-24 00:45:03 +09:00
Yamashita Yuu
b22fcd9759 Add missing changelog of v20141211 2015-01-24 00:43:12 +09:00
No GUI
55341f4436 Include gems dir in .gitignore
Since communal-gems is maintainer-approved, thought it would be useful to include the directory it uses in the ignore list.

(This also helps me, since I install rbenv as submodule and without this entry, the submodule is perpetually marked dirty.)
2015-01-20 13:21:22 -07:00
Yamashita, Yuu
45df273592 Merge pull request #307 from cloudlite/patch-1
Update README.md - clone through https instead of git
2015-01-20 11:23:45 +09:00
cloudlite
dbd50e7bd9 Update README.md - clone through https instead of git
git:// protocol is blocked by a lot of servers, https works fine.
2015-01-19 20:51:18 -05:00
Yamashita Yuu
1c0a5d8264 Add IronPython 2.7.5 2015-01-18 20:24:47 +09:00
Yamashita Yuu
7c7cca8a26 Merge branch 'ruby-build-v20150112' 2015-01-15 23:40:23 +09:00
Yamashita Yuu
123b3af1a0 Import changes from ruby-build v20150112 2015-01-15 23:33:39 +09:00
Yamashita, Yuu
ba9c01ce77 Merge pull request #304 from jbrudvik/patch-1
Use better image for Travis build status
2015-01-14 13:44:51 +09:00
Jeremy Brudvik
7535efe031 Use better image for Travis build status 2015-01-13 19:53:29 -08:00
Yamashita, Yuu
995da2df89 Merge pull request #295 from radzinzki/master
Update README.md
2014-12-18 12:43:16 +09:00
Arnav Kumar
f28b3ee123 Update README.md
Made it consistent with the rbenv documentation by having the cloning step in the installation clone it directly into the home directory.
2014-12-18 11:41:25 +08:00
Yamashita, Yuu
97b957d5d5 Merge pull request #292 from s1341/master
add patches to stop '/Library/Python/X.X/site-packages' from being added to sys.path
2014-12-14 21:30:54 +09:00
srubenst
fe2412c95d add patches to stop '/Library/Python/X.X/site-packages' from being added to sys.path 2014-12-12 11:49:01 +02:00
Yamashita, Yuu
5114600c4d Merge pull request #289 from blueyed/unset-PYTHON_CFLAGS-in-tests
Unset PYTHON_CFLAGS for build tests
2014-12-12 10:02:10 +09:00
Daniel Hahler
96d3bd6379 Unset PYTHON_CFLAGS and PYTHON_CONFIGURE_OPTS for build tests 2014-12-12 01:36:37 +01:00
Daniel Hahler
e8433cfeb3 Use exitcode from pyenv-version-name in pyenv-version, do not halt 2014-12-11 20:37:03 +01:00
Daniel Hahler
7f88eabd0b Improve pyenv version, if there is one missing
Display the other available ones still.

Fixes https://github.com/yyuu/pyenv/issues/291
2014-12-11 18:49:38 +01:00
Yamashita Yuu
d320d74a07 v20141211 (fixes #288) 2014-12-11 22:39:38 +09:00
Yamashita Yuu
fc49f7e21e Fix building _dev_ versions 2014-12-11 22:35:12 +09:00
Yamashita Yuu
be4f5992d6 Add 3.5-dev (#287) 2014-12-11 21:46:22 +09:00
Yamashita Yuu
25a48694be Use 3.4 branch for 3.4-dev (fixes #287) 2014-12-11 21:45:37 +09:00
Yamashita, Yuu
9b7b2a6b40 Merge pull request #286 from joshfriend/ignore-bats
Ignore the bats/ directory cloned by tests
2014-12-11 12:50:24 +09:00
Yamashita, Yuu
f59729359a Merge pull request #285 from joshfriend/python-279
Add Python 2.7.9
2014-12-11 12:48:31 +09:00
Josh Friend
93ac0632c7 ignore bats/ directory cloned by tests 2014-12-10 22:20:56 -05:00
Josh Friend
7a21cf9c10 Add release version of 2.7.9 (fixes #284) 2014-12-10 21:51:52 -05:00
Josh Friend
720dee76af remove 2.7.9 release candidate 2014-12-10 18:16:54 -05:00
Yamashita, Yuu
db6a41c90f Merge pull request #280 from yyuu/rbenv-7e0e85bd
Import recent changes from rbenv
2014-12-01 22:53:51 +09:00
Yamashita Yuu
bfddc69120 Update Makefile. Use same path configuration as travis-ci. 2014-12-01 22:50:04 +09:00
Yamashita Yuu
acce3744e7 Add pip-rehash 2014-12-01 22:36:10 +09:00
Yamashita Yuu
5ca423c9f3 Revert a fix for #101 to fix broken tests relating to PYENV_NATIVE_EXT 2014-12-01 20:34:12 +09:00
Yamashita Yuu
f0e852553a Import rbenv changes at 7e0e85bdda 2014-12-01 00:29:26 +09:00
Yamashita Yuu
fc8597ca38 Rename build definitions of pypy nightly build 2014-11-29 17:22:39 +09:00
Kevin Burke
c9a96c9f79 Use command to run rbenv rehash
In the event that `eval "$(rbenv init -)"` is called from a function named
rbenv (which I do to get rbenv to load lazily in my shell), evaluating the
phrase `rbenv rehash` will cause the outer function to run again (causing an
infinite loop).

This change makes it clear you want the command named rbenv and not a function
which may exist in the environment.
2014-11-28 21:16:14 -08:00
Yamashita Yuu
e7a68ad467 Update require_distro of pypy-2.4.0 on Linux x86/amd64 2014-11-29 11:21:08 +09:00
Yamashita Yuu
0fd1eaaeb5 Add pypy3-2.4.0-src (#277) 2014-11-29 11:16:44 +09:00
Yamashita Yuu
b986f8f93f Add PyPy nightly builds 2014-11-29 10:55:26 +09:00
Yamashita Yuu
60e1abe7fa Add PyPy3 2.4.0 (fixes #277) 2014-11-29 09:48:04 +09:00
Yamashita Yuu
afcf4f0c7c Move require_distro out from PyPy build definitions 2014-11-29 09:11:36 +09:00
Makoto Sasaki
c0aff27842 v20141127 2014-11-27 14:58:31 +09:00
Makoto Sasaki
e172eb2818 Add CPython 2.7.9rc1 (fixes #276) 2014-11-27 14:13:44 +09:00
Ollie Walsh
3a5c2cabb1 Fix portable python url for 2.4.0 2014-11-19 21:01:56 +00:00
Ollie Walsh
871ec77795 Add Portable PyPy binaries from https://github.com/squeaky-pl/portable-pypy 2014-11-19 20:50:34 +00:00
Yamashita Yuu
8761ae8f7c v20141118 2014-11-18 20:05:01 +09:00
Yamashita, Yuu
3d401ebcd2 Merge pull request #271 from s1341/master
add a patch to allow building 2.6.9 on osx 10.9
2014-11-18 19:56:52 +09:00
srubenst
268f965421 add a patch to allow building 2.6.9 on osx 10.9 2014-11-14 11:51:02 +02:00
Yamashita Yuu
ff0f8a140b Merge branch 'test-builtin-patches' 2014-11-13 21:56:27 -08:00
Yamashita Yuu
6c2d234e55 Split test files 2014-11-13 21:56:14 -08:00
Yamashita Yuu
c6dd3b9468 Add test for built-in python-build's patching feature 2014-11-13 21:53:52 -08:00
Yamashita Yuu
8fee82e456 Fix broken setup_builtin_patches 2014-11-12 11:03:49 -08:00
Yamashita Yuu
7220044b49 v20141106 2014-11-06 09:41:22 -08:00
Daniel Hahler
a797bb6d88 Fix "pyenv: version 'system' is not installed" with pyenv which
This is a follow-up to de5c61c.
2014-11-06 17:57:17 +01:00
Yamashita Yuu
665f9d9466 Merge branch 'use-https' (fixes #262) 2014-11-05 09:25:36 -08:00
Eric Mill
cb260fb9d0 fix another failing test with https URL 2014-11-05 09:23:06 -08:00
Eric Mill
4f0439cd12 fix one failing test, around mirror URL 2014-11-05 09:22:59 -08:00
Eric Mill
2e387816f1 use https for download URLs
Conflicts:
	plugins/python-build/bin/python-build
2014-11-05 09:22:52 -08:00
Yamashita Yuu
ee4182321e Update python versions in README 2014-11-05 09:17:05 -08:00
Yamashita, Yuu
661a2b29d3 Merge pull request #236 from blueyed/doc-mention-pyenv-pip-rehash
README: mention https://github.com/yyuu/pyenv-pip-rehash
2014-11-05 09:14:35 -08:00
Yamashita, Yuu
8c503c6e75 Merge pull request #237 from blueyed/doc-recent-python-versions
doc: use recommended python versions
2014-11-05 09:13:55 -08:00
Yamashita, Yuu
743a637b59 Merge pull request #265 from yyuu/ruby-build-v20141028
Import changes from ruby-build v20141028
2014-11-04 21:15:26 -08:00
Yamashita, Yuu
7fe78245d8 Merge pull request #266 from konstantint/patch-1
Warn about #264 in the README
2014-11-04 09:28:20 -08:00
Konstantin Tretyakov
96c0362b53 Warn about #264 in the README 2014-11-04 18:54:19 +02:00
Yamashita Yuu
2dae281201 Need to chdir before running tests of python-build 2014-11-04 00:14:57 -08:00
Yamashita Yuu
4a52bfaff9 Fix broken tests 2014-11-04 00:04:25 -08:00
Yamashita Yuu
b26b83a11f Import changes from ruby-build v20141028 2014-10-29 04:04:10 -07:00
Yamashita, Yuu
35aed218cf Merge pull request #260 from jensraaby/anaconda210
Add Miniconda/Miniconda3 3.7.0 and Anaconda/Anaconda3 2.1.0
2014-10-24 08:16:37 +09:00
Jens Raaby
38ab616344 Add Miniconda/Miniconda3 3.7.0 and Anaconda/Anaconda3 2.1.0
SHA256 values generated with direct downloads from repo.continuum.io
2014-10-23 19:25:41 +01:00
Mislav Marohnić
7e0e85bdda Avoid JRuby warning during rehash Rubygems plugin
As it seems, JRuby 1.7 complains on stderr every time you invoke `system`:

    warning: executable? does not in this environment and will return a dummy value

It doesn't seem to complain when backtics are used. It's safe to use
backticks here because `rbenv rehash` doesn't output anything on stdout,
and the exit status of the command is irrelevant.
2014-10-19 18:06:09 +02:00
Mislav Marohnić
d1a0398fdb Merge pull request #638 from sstephenson/gem-rehash
Bring rbenv-gem-rehash functionality to core
2014-10-19 14:51:45 +02:00
Mislav Marohnić
67f429c41d Bring automatic gem-rehash functionality to rbenv core
This bakes in the functionality of rbenv-gem-rehash plugin.

The Rubygems hook is improved:

- It will not rehash for gems installed in locations that rbenv otherwise
  doesn't search for binstubs; for instance in case of
  `bundle --path vendor/bundle`.
- It rescues exceptions and makes them non-lethal by warning on stderr.
2014-10-19 14:35:43 +02:00
Mislav Marohnić
632263568e Add rbenv's own rbenv.d directory to hook paths
This allows rbenv source code to ship with built-in hooks.
2014-10-19 14:35:36 +02:00
Mislav Marohnić
bf39d88d11 Add tests for rbenv PATH and RBENV_HOOK_PATH handling 2014-10-19 14:35:36 +02:00
Yamashita Yuu
720870011b Merge branch 'altinstall' (fixes #255)
Allow installing CPython with `make altinstall` instead of
`make install` with following command-line.

```sh
$ env PYTHON_MAKE_INSTALL_PACKAGE="altinstall" pyenv install -v 3.4.2
```
2014-10-19 11:19:17 +09:00
Yamashita Yuu
b2ac5df98d Calling create_symlinks after ensurepip is unnecessary (#182, #255)
Install script of setuptools-6.1/pip-1.5.6 will create those links if needed
2014-10-19 10:59:35 +09:00
Yamashita Yuu
d9e772eb6e Stop creating symlinks w/ version suffix if altinstall has specified (#182, #255) 2014-10-19 00:34:20 +09:00
Yamashita Yuu
eef8ac2701 Use version suffixed executable (e.g. python3.4) for internal use of python (#255) 2014-10-19 00:28:33 +09:00
Yamashita Yuu
45b45bcf25 Pass --altinstall to ensurepip (#255) 2014-10-18 23:56:51 +09:00
Yamashita Yuu
ded98e11de Allow users to change the name of install target (#255) 2014-10-18 23:06:19 +09:00
Yamashita, Yuu
dc1b5a197f Merge pull request #254 from blueyed/add-Makefile
Add Makefile for 'make test'
2014-10-18 09:30:22 +09:00
Mislav Marohnić
07d675350f Merge pull request #636 from sstephenson/speedup-rehash
Speed up `rbenv rehash`
2014-10-16 12:29:51 +02:00
Daniel Hahler
79507fbadf Add Makefile for 'make test' 2014-10-16 03:13:39 +02:00
Daniel Hahler
de5c61cd59 Fix "version X is not installed" with multiple PYENV_VERSIONs
This was introduced when merging the rbenv upstream change
(https://github.com/sstephenson/rbenv/commit/6bb7f07d2d).
2014-10-16 02:51:07 +02:00
Mislav Marohnić
39cde6fc95 Merge pull request #528 from sstephenson/dylib
Speed up rbenv by dynamically loading compiled command
2014-10-15 18:19:54 +02:00
Mislav Marohnić
1381c2ca79 Simplify the shims registration implementation in rbenv-rehash
It doesn't need to be a bash array and we don't need a separate index of
shims registered. Simply keep everything in a space-separated string and
use that as an index as well.

This assumes that executable names *never* have spaces in them.
2014-10-15 05:46:18 +02:00
Mislav Marohnić
89d4e8a0e0 Speed up rehash process when there are many Ruby versions
On my system that has 25 versions under rbenv, this speeds up rehash
almost 3-fold:

- before: 391 ms
- after:  134 ms

This is achieved by removing duplicate names of executables before
registering them as shims. Since most Rubies will share a lot of the
same executable names ("ruby", "rake", "bundle", ...), this is a
considerable reduction in number of shims registered.
2014-10-15 05:46:18 +02:00
Mislav Marohnić
a8df5d587c Avoid changing directories during rehash process 2014-10-15 05:46:18 +02:00
Mislav Marohnić
e2173df4aa Revert "Don't duplicate shims in PATH"
Too many of our users have a shell initialization set up that
inadvertently duplicates some or most of the entries in their PATH,
bringing the system paths again in front of rbenv's shims. If this was a
nested shell (a typical scenario when starting up tmux), `rbenv init`
would get eval'd again but this time, shims won't get added to the front
of the PATH and would only stay and the end of the path, effectively
rendering them useless.

I tried to argue that this is a user problem rather than rbenv's, but I
can't fix everybody shell init when they report bugs. Instead, let's
revert to simpler times in rbenv where we just roll along with the
duplication and don't ask any questions.

This reverts commit 03fa148e81.

Fixes #369
2014-10-15 01:43:24 +02:00
Mislav Marohnić
e851250da6 Speed up obtaining exec/which/whence completions
Delegate to `rbenv-shims` instead of `rbenv shims` and therefore skip
going through the main `rbenv` executable again that would set up a lot
of the environment that was already set.
2014-10-15 01:24:45 +02:00
Yamashita Yuu
8e657374a1 Import recent changes from rbenv-versions 2014-10-15 00:46:11 +09:00
Yamashita, Yuu
77bd5bc6c9 Merge pull request #129 from blueyed/optimize-pyenv-which
Optimize pyenv-which: implement remove_from_path in Bash
2014-10-15 00:19:28 +09:00
Daniel Hahler
e82f943174 Merge rbenv's "Isolate rbenv-which tests …" (c69d9a11)
This is the remaining part of
c69d9a1128.

    commit c69d9a1128
    Author: Mislav Marohnić <mislav.marohnic@gmail.com>
    Date:   Mon Oct 13 12:39:47 2014 +0200

        Isolate rbenv-which tests from any `.ruby-version` file on the system

        Having a `.ruby-version` file in any of the parent directories of the
        local clone of rbenv could cause the test suite to fail because it
        wasn't expecting a local version to be set.
2014-10-13 21:20:57 +02:00
Daniel Hahler
bbf8cb4a95 Add test for PYENV_VERSION=3.4:2.7 2014-10-13 21:15:22 +02:00
Daniel Hahler
a1df551bcf Merge tests and remove_from_path from rbenv
This adds the missing parts from the upstream rbenv merge:
f4652fbbf0

- e4cbf04592
- 3ee395f9b5
2014-10-13 21:14:57 +02:00
Mislav Marohnić
c69d9a1128 Isolate rbenv-which tests from any .ruby-version file on the system
Having a `.ruby-version` file in any of the parent directories of the
local clone of rbenv could cause the test suite to fail because it
wasn't expecting a local version to be set.

Fixes #533
2014-10-13 12:39:47 +02:00
Mislav Marohnić
f4652fbbf0 Merge branch 'speedup-which'
Closes #560
2014-10-13 12:30:34 +02:00
Mislav Marohnić
3ee395f9b5 Clean up PATH sanitization in rbenv-which 2014-10-13 12:27:19 +02:00
Daniel Hahler
e4cbf04592 Improve performance of rbenv-which when RBENV_VERSION=system
This implements removing of the shims path element via bash
substitution, instead of jumping around in all the `$PATH` elements.
2014-10-13 12:26:43 +02:00
Mislav Marohnić
6bb7f07d2d Avoid rbenv-exec calling out to rbenv-version-name twice
Running any shim (and thus `rbenv-exec`) would always execute
`rbenv-version-name` twice: once in `rbenv-exec` and another time in
`rbenv-which`, even though RBENV_VERSION variable would have already
been populated at this point.

Now RBENV_VERSION is respected within `rbenv-which`.
2014-10-13 12:26:43 +02:00
Mislav Marohnić
51bd975820 Merge branch 'blank-versions'
Fixes #626
2014-10-13 11:51:46 +02:00
Mislav Marohnić
294cff3fd4 Fall back to cc as default compiler when gcc is not available 2014-10-13 04:12:35 +02:00
Mislav Marohnić
a6e0785b84 Create configure script to generate a cross-platform Makefile
The previous Makefile only worked on OS X. The dynamically generated
Makefile (from `Makefile.in`) should now work on multiple platforms
(tested on OS X and Ubuntu).
2014-10-13 04:12:35 +02:00
Mislav Marohnić
302b317b89 Fix shobj-conf on Darwin
The `shobj-conf` script imported from bash seems to not support the
latest OS X. This makes sure that `SHOBJ_LDFLAG=-dynamiclib` is output
for Darwin10+ (latest version is Darwin 13.0).
2014-10-13 04:12:35 +02:00
Mislav Marohnić
8facb3b3a7 Import shobj-conf script from bash
Given the `-o <HOST-OS>` parameter, the script generates environment
variables with information how to compile dynamically loadable libraries
for that system.

Imported from bash-3.2.48
2014-10-13 04:12:35 +02:00
Mislav Marohnić
b5622bee3a Try without -current_version
Seems to only work on OS X; fails on Travis
https://travis-ci.org/sstephenson/rbenv/jobs/16384866
2014-10-13 04:12:35 +02:00
Mislav Marohnić
3f74da0e73 Fail hard if RBENV_NATIVE_EXT is set but extensions failed to load 2014-10-13 04:12:35 +02:00
Mislav Marohnić
68b92a7f5d Test compiled native extensions on Travis CI 2014-10-13 04:12:35 +02:00
Mislav Marohnić
8bac958994 Stop using abs_dirname() in rbenv-init
It's slow and not necessary since we expect `$0` to already be expanded.

In tests this change forces us to deal with some relative paths, but
it's not a big deal. The `rbenv init -` output in the most common case
will be the same as before:

    source '/home/myuser/.rbenv/libexec/../completions/rbenv.bash'
2014-10-13 04:12:34 +02:00
Mislav Marohnić
5287e2ebf4 Avoid slow abs_dirname() by loading realpath extension
This speeds up every `rbenv` invocation significantly.
2014-10-13 04:12:34 +02:00
Mislav Marohnić
284588f9b4 Fix hooks tests on OS X by expanding BATS_TMPDIR
With `realpath` extension, hooks tests on OS X will output
`/private/tmp` instead of `/tmp` because the latter is an actual symlink
to the former.

Avoid this mistmach in output assertions by expanding BATS_TMPDIR if
`realpath` extension is compiled.
2014-10-13 04:12:34 +02:00
Mislav Marohnić
16c7eb4135 Speed up realpath() with dynamically loaded C extension
On systems that support both C compiling and dynamic loading, we can
speed up `realpath()` (where most time in rbenv is spent) by replacing
it with a dynamically loaded bash builtin.

When `make -C src` is called in the project's root,
`libexec/rbenv-realpath.dylib` will be created. If it exists, rbenv will
attempt to load it as a builtin command. If it fails, execution will
fall back to the old `realpath()` shell function.
2014-10-13 04:12:34 +02:00
Mislav Marohnić
9bcef4b875 Add tests for non-directory types under RBENV_ROOT/versions/ 2014-10-13 04:02:46 +02:00
Mislav Marohnić
f237a11f4f Have versions emit a warning when no Ruby version was found 2014-10-13 04:02:04 +02:00
Yamashita Yuu
fc41c87395 Check existence of curses module before start building PyPy (#244) 2014-10-13 02:29:55 +09:00
Yamashita Yuu
6e02ad2fe4 Merge branch 'pypy-shared' 2014-10-12 21:58:08 +09:00
Yamashita Yuu
58e24a64a2 Set PYENV_VERSION on building pypy from source 2014-10-12 21:57:21 +09:00
Makoto Sasaki
77d9e34a49 v20141012 2014-10-12 21:48:56 +09:00
Makoto Sasaki
d7f4aa02ed Add CPython 3.2.6 and CPython 3.3.6 (fixes #253) 2014-10-12 20:41:49 +09:00
Yamashita Yuu
42bb40a5d8 Try to set rpath for --shared build of PyPy (#244) 2014-10-12 20:19:37 +09:00
Makoto Sasaki
d38f00cd4a v20141011 2014-10-11 20:00:54 +09:00
Makoto Sasaki
e9a6a2909c Add Stackless 2.7.7, Stackless 2.7.8, and Stackless 3.4.1 (fixes #252) 2014-10-11 18:06:23 +09:00
Makoto Sasaki
5f95ce1835 Fix build problem of Stackless 3.3.5 (refs #250) 2014-10-10 04:22:47 +09:00
Makoto Sasaki
ff995b6654 v20141008 2014-10-08 19:29:20 +09:00
Makoto Sasaki
4d15d21f0f Add CPython 3.4.2 (fixes #251) 2014-10-08 18:47:18 +09:00
Makoto Sasaki
6790e3e18a Add CPython 3.2.6rc1 and CPython 3.3.6rc1 (fixes #248) 2014-10-05 02:07:12 +09:00
Makoto Sasaki
737e0f1b3f Add CPython 3.4.2rc1 (fixes #245) 2014-09-26 00:36:17 +09:00
Yamashita Yuu
ab9ee414ad v20140924 2014-09-24 13:57:53 +09:00
Yamashita Yuu
c3a755c853 Add PyPy-2.4.0 (fixes #241) 2014-09-23 05:00:27 +09:00
Daniel Hahler
9901c4b84d Use consistent quoting for versions=("$@") across bins 2014-09-11 12:59:40 +02:00
Daniel Hahler
04ce9bcd5c doc: use recommended python versions 2014-09-11 12:56:56 +02:00
Daniel Hahler
4cf93df059 README: mention https://github.com/yyuu/pyenv-pip-rehash 2014-09-11 12:55:39 +02:00
Yamashita, Yuu
a43f7f5341 Merge pull request #231 from blueyed/fix-zsh-completion-for-none
Do not quote completions in $reply
2014-09-11 01:31:14 +09:00
Makoto Sasaki
af2cb3f943 Add PyPy 2.4-beta1 (fixes #232) 2014-09-10 16:50:19 +09:00
Yamashita, Yuu
9b8b9c5205 Merge pull request #230 from blueyed/version-file-write-no-rm
pyenv-version-file-write: do not use rm, but clobber the file
2014-09-08 13:16:05 +09:00
Daniel Hahler
b6aef96cea pyenv-version-file-write: do not use rm, but clobber the file
With e.g. /usr/local/bin/.python-version owned by some user, `pyenv
local foo` would fail, if the user has no permissions for
`/usr/local/bin`, but only the `.python-version` file.
2014-09-07 16:56:40 +02:00
Daniel Hahler
bc6be9ed9f Do not quote completions in $reply
With an empty list of completions, zsh would complete a space / advance
the cursor by a space when completing.
2014-09-03 21:01:38 +02:00
Yamashita, Yuu
2297bd3741 Merge pull request #227 from blueyed/doc-multiple-versions
doc: note about using multiple versions
2014-09-03 10:17:30 +09:00
Daniel Hahler
8595df4e18 minor: remove trailing whitespace 2014-09-03 02:51:22 +02:00
Daniel Hahler
200adac02f doc: note about using multiple versions
Add a note about how to activate/use multiple versions to the main
README, to the "Choosing the Python Version" section.
2014-09-03 02:47:57 +02:00
Yamashita Yuu
6509d318f4 v20140825 2014-08-25 10:21:26 +09:00
Makoto Sasaki
474767618d Add Jython 2.7 Beta 3 (fixes #223)
This release of Jython requires JDK 7 or above
2014-08-24 04:19:54 +09:00
Yamashita, Yuu
82aaef7842 Merge pull request #222 from yyuu/macosx-deployment-target
Setting MACOSX_DEPLOYMENT_TARGET on Darwin
2014-08-21 19:21:59 +09:00
Yamashita Yuu
9df0a2916d Setup configure options to build against universal SDK on Darwin 2014-08-21 15:24:36 +09:00
Yamashita Yuu
f76309d419 Add tests for MACOSX_DEPLOYMENT_TARGET (#219, #220) 2014-08-21 13:59:04 +09:00
Yamashita Yuu
29d3df661e Fix broken tests 2014-08-21 13:59:04 +09:00
Yamashita Yuu
96b4c0f7e7 Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220) 2014-08-21 13:59:04 +09:00
Yamashita, Yuu
f9053406c2 Merge pull request #215 from blueyed/fix-zsh-completion
Fix zsh completion with multiple words
2014-08-11 10:56:26 +09:00
Yamashita Yuu
ae4659538d Unset PIP_REQUIRE_VENV during build (fixes #216) 2014-08-11 10:40:56 +09:00
Daniel Hahler
4159055117 Fix zsh completion with multiple words
`${words[2,-2]}` must not be quoted, otherwise completion for multiple
words (e.g. `shell 3.4.1`) fails.
2014-08-10 17:04:26 +02:00
Yamashita Yuu
aa62882347 Display the package name of hg as mercurial in message (#212) 2014-08-09 01:06:55 +09:00
Yamashita Yuu
b8a7de8a3c v20140705 (fixes #204) 2014-07-06 00:35:50 +09:00
Yamashita Yuu
a661e14580 Support SETUPTOOLS_VERSION and PIP_VERSION to allow installing specific version of setuptools/pip (#202) 2014-07-03 10:18:27 +09:00
Makoto Sasaki
22f4218522 Add CPython 2.7.8 (refs #201) 2014-07-02 17:38:33 +09:00
Yamashita Yuu
6f761f8159 Remove exit 0 from initialization code of fish 2014-06-30 23:00:09 +09:00
Yamashita Yuu
0468ffdd49 v20140628 2014-06-28 18:04:17 +09:00
Yamashita Yuu
352c8f49bd Merge branch 'ez_setup_opts' 2014-06-26 23:23:37 +09:00
Yamashita Yuu
72eb7f5c32 Add support for options to ez_setup.py/get-pip.py (#200) 2014-06-26 23:13:27 +09:00
Yamashita, Yuu
59c796c138 Merge pull request #199 from dlitz/pycrypto
Add support for 2.1.3, 2.2.3, 2.3.7
2014-06-22 21:34:05 +09:00
Dwayne Litzenberger
a465cb808c Add 2.1.3, 2.2.3, 2.3.7
Just enough to run PyCrypto's test suite.
2014-06-22 02:05:30 -07:00
Makoto Sasaki
ade2bf2a0d Add PyPy3 2.3.1 (refs #198) 2014-06-21 08:54:12 +09:00
Makoto Sasaki
ed133866d7 Merge pull request #194 from yyuu/pseudo-ensurepip
Use `ez_setup.py` and `get-pip.py` to setup pip
2014-06-16 20:09:40 +09:00
Yamashita Yuu
f6a5eb90a1 s/getpip/get_pip/g 2014-06-16 11:13:25 +09:00
Yamashita Yuu
d805ec19ca Pass ez_setup.py and get-pip.py via argument instead of STDIN
AFAIK, Jython 2.7b2 could not handle ez_setup.py via STDIN
2014-06-16 11:13:25 +09:00
Yamashita Yuu
3ba7702602 Rename functions
* `build_package_setuptools` -> `build_package_ez_setup`
  * `build_package_pip` -> `build_package_getpip`
2014-06-16 11:13:25 +09:00
Yamashita Yuu
887f2263f0 Enable pseudo _ensurepip_ for existing definitions 2014-06-16 11:13:25 +09:00
Yamashita Yuu
d215804fbe Add pseudo ensurepip 2014-06-16 11:06:21 +09:00
Makoto Sasaki
6697437d1a Update setuptools (5.0.1 -> 5.1) (refs #196) 2014-06-16 04:13:51 +09:00
Yamashita, Yuu
e9e151c89e Merge pull request #195 from thomasjo/anaconda-2.0.1
Add Anaconda v2.0.1 definitions
2014-06-15 13:52:36 +09:00
Thomas Johansen
0880a92a7f Add Anaconda v2.0.1 definitions 2014-06-15 06:39:02 +02:00
Makoto Sasaki
3169a4894b Update setuptools (5.0 -> 5.0.1) (refs #193) 2014-06-15 08:47:40 +09:00
Makoto Sasaki
21c0d930e9 v20140615 2014-06-15 05:37:34 +09:00
Makoto Sasaki
f470c80e5a Update setuptools (4.0.1 -> 5.0) (refs #190) 2014-06-15 03:00:55 +09:00
Yamashita Yuu
2b5ee0c425 v20140614 2014-06-14 14:38:13 +09:00
Yamashita Yuu
5931001cab Iterate over just for actual files 2014-06-12 20:37:40 +09:00
Yamashita Yuu
5c91bc981c Create symlinks for executables with version suffix (#182) 2014-06-11 22:25:34 +09:00
Yamashita Yuu
d496c03497 Remove diff --git a/ from patches (#189)
The `diff --git a/` indicates that the patch is generated from `git diff`
and it should be applied with `patch -p1`. Because the patches bundled
with python-build have already re-formated for `patch -p0`, this is not
the desired behaviour.

Just removing `diff --git` from patches will force python-build to apply
those patches with `patch -p0`.
2014-06-11 12:17:20 +09:00
Yamashita Yuu
2ec8f0f0a4 Fix fetch_git with --keep (sstephenson/ruby-build#549) 2014-06-09 22:41:43 +09:00
Makoto Sasaki
00596b4b46 Add PyPy 2.3.1 2014-06-08 09:31:18 +09:00
Makoto Sasaki
e9a8adb37f Update Readme(md5sum -> sha256sum) 2014-06-06 01:00:18 +09:00
Yamashita Yuu
6efe6dafe7 Changed versioning scheme; 0.4.0-20140602 -> 20140602 2014-06-04 13:40:16 +09:00
Yamashita, Yuu
a01a08c551 Merge pull request #184 from yyuu/ruby-build-v20140524
Import changes from ruby-build v20140524
2014-06-03 23:14:20 +09:00
Yamashita Yuu
c2cc649cfa md5sum -> sha256sum 2014-06-03 23:07:29 +09:00
Yamashita Yuu
9dac275567 Import changes from ruby-build v20140524 2014-06-03 11:41:47 +09:00
Makoto Sasaki
3290973990 Update setuptools (4.0 -> 4.0.1) (refs #183) 2014-06-03 08:01:31 +09:00
Mislav Marohnić
13a474c4e9 Get rid of explicit exit in fish branch of rbenv-init
Allows for code to be added to the end of the script which will not
mysteriously fail to run for fish shell.
2014-06-03 00:39:34 +07:00
Yamashita Yuu
d378b274d9 v20140602 2014-06-02 11:27:24 +09:00
Makoto Sasaki
08b0d162b4 Update setuptools (3.6 -> 4.0) (refs #181) 2014-06-02 10:32:32 +09:00
Makoto Sasaki
b9e698305e Add CPython 2.7.7 (refs #180) 2014-06-02 06:59:24 +09:00
Yamashita, Yuu
01f2a1d2ca Merge pull request #179 from thomasjo/anaconda-2.0
Add Anaconda and Anaconda3 definitions for v2.0.0
2014-05-30 12:30:53 +09:00
Thomas Johansen
4b8146f516 Add Anaconda and Anaconda3 definitions for v2.0.0 2014-05-29 22:24:59 +02:00
Makoto Sasaki
5a69204978 Add CPython 2.7.7rc1 (refs #178) 2014-05-30 04:32:06 +09:00
Yamashita Yuu
801b093b67 Support for xz-compressed Python tarballs (fixes #177) 2014-05-29 21:08:05 +09:00
Makoto Sasaki
2cca695bed Can't install Jython 2.7 Beta 2 2014-05-28 11:25:12 +09:00
Yamashita Yuu
67324465fa Merge branch 'dont_clober_ldflags_cppflags' (fixes #168) 2014-05-23 18:39:43 +09:00
Yamashita Yuu
7612f0391d Don't clober the environment CPPFLAGS and LDFLAGS (refs #168)
Because the variables specified via command-line arguments for the
`./configure` will be favored than one in environment variables,
setting those variables in `PACKAGE_CONFIGURE_OPTS_ARRAY` will hide
existing environment variables.

To avoid the problem, stop using `package_option()` to setup those
variables.
2014-05-21 22:48:11 +09:00
Yamashita Yuu
21f44a130a Check envvars of CPPFLAGS and LDFLAGS during tests 2014-05-21 22:41:28 +09:00
Yamashita Yuu
033529915e v20140520 2014-05-20 12:28:04 +09:00
Yamashita, Yuu
e77e60206d Merge pull request #171 from makotosasaki/2
Add CPython 3.4.1
2014-05-20 12:21:23 +09:00
Makoto Sasaki
d5506e1404 Add CPython 3.4.1 2014-05-20 09:47:41 +09:00
Yamashita, Yuu
f512496588 Merge pull request #169 from makotosasaki/2
Update pip (1.5.5 -> 1.5.6)
2014-05-19 16:49:15 +09:00
Makoto Sasaki
27d4b9b6d2 Update pip (1.5.5 -> 1.5.6) 2014-05-19 16:01:44 +09:00
Yamashita Yuu
ef8c8b8ef2 v20140516 2014-05-16 21:07:19 +09:00
Yamashita Yuu
5998c4596b Add miniconda/miniconda3 3.4.2 2014-05-16 20:28:33 +09:00
Yamashita Yuu
8851acda13 Add Jython 2.7 beta2 2014-05-15 13:51:40 +09:00
Yamashita Yuu
1ceb678e86 style 2014-05-15 13:50:58 +09:00
Yamashita Yuu
79e2c96a7e Update setuptools (3.5.1 -> 3.6) 2014-05-12 20:25:05 +09:00
Yamashita Yuu
fa0442688a Update GNU Readline (6.2 -> 6.3) 2014-05-12 00:35:09 +09:00
Yamashita Yuu
9e596d641d Add Stackless 2.7.{3,4,5,6} 2014-05-12 00:27:13 +09:00
Yamashita, Yuu
3ab6836c38 Merge pull request #164 from Enucatl/master
Added stackless-3.2.5 and stackless-3.3.5
2014-05-12 00:10:19 +09:00
Matteo Abis
082c19f5a1 Merge branch 'master' of github.com:Enucatl/pyenv 2014-05-11 17:00:53 +02:00
Matteo Abis
3f1a4d0ff9 added stackless 3.2.5 and stackless 3.3.5 2014-05-11 16:54:35 +02:00
Matteo
0df94b1097 Merge pull request #2 from Enucatl/stackless_update
Merge pull request #1 from yyuu/master
2014-05-11 16:51:11 +02:00
Matteo
1e2979d101 Merge pull request #1 from yyuu/master
Updated stable stackless python versions
2014-05-11 16:45:14 +02:00
Yamashita Yuu
72a480f298 Add pypy-2.3-src (refs #162) 2014-05-09 20:13:23 +09:00
Yamashita, Yuu
9d74383461 Merge pull request #162 from fgimian/pypy-2.3
Add PyPy-2.3
2014-05-09 20:07:47 +09:00
Fotis Gimian
2e737a80c0 Add PyPy-2.3 2014-05-09 20:56:34 +10:00
Yamashita Yuu
d707546912 Update pip (1.5.4 -> 1.5.5) 2014-05-07 23:08:28 +09:00
Yamashita Yuu
4501d90896 Update setuptools (3.4.4 -> 3.5.1) 2014-05-07 23:07:12 +09:00
Yamashita Yuu
149a915770 Import recent changes from ruby-build 20140420 2014-05-01 13:14:41 +09:00
Yamashita Yuu
0c81002220 Prefer gawk over awk if both are available. 2014-05-01 13:09:55 +09:00
Yamashita Yuu
fe87e44870 Fix error messages of Anaconda/Miniconda 2014-04-29 12:56:31 +09:00
Mislav Marohnić
fe0b2436b8 Merge pull request #581 from LawnGnome/solaris-gawk
Prefer gawk over awk if both are available.

Fixes rbenv-help on Solaris 11.1
2014-04-19 15:29:31 +02:00
Adam Harvey
808527b5d0 Prefer gawk over awk if both are available. 2014-04-18 10:40:56 +10:00
Yamashita Yuu
601ac4b3f3 Update setuptools (3.4.3 -> 3.4.4) 2014-04-16 19:00:45 +09:00
Yamashita Yuu
60950d0082 Add IronPython 2.7.4, without setuptools and pip.
The setuptools installation seems broken for IronPython.
2014-04-13 01:07:12 +09:00
Yamashita, Yuu
cff2c4527d Merge pull request #155 from uhpnou/master
added anaconda-1.9.2
2014-04-12 12:14:36 +09:00
Giuseppe Lucio Sorrentino
10e6dd8c2d added anaconda-1.9.2 2014-04-11 19:07:24 +02:00
Yamashita Yuu
18ecb4ffbb Merge branch 'ruby-build-20140408' 2014-04-09 21:28:53 +09:00
Yamashita Yuu
986db22da8 Import recent changess from ruby-build v20140408 2014-04-09 21:25:29 +09:00
Yamashita Yuu
07037d9a5d Merge branch 'ironpython' 2014-04-08 23:43:47 +09:00
Yamashita Yuu
8914be846f Add ironpython-dev.
I have not yet confirmed the `setuptools` can work together on GNU/Linux though.
2014-04-08 23:42:58 +09:00
Yamashita Yuu
d1f1c4c61c Update setuptool (3.4.1 -> 3.4.3) 2014-04-08 23:08:33 +09:00
Yamashita Yuu
6c70e2a997 Add miniconda/miniconda3 3.3.0 2014-04-06 17:31:09 +09:00
Yamashita Yuu
3cde540ca0 v20140404 2014-04-04 13:16:27 +09:00
Yamashita Yuu
83e820d869 Merge branch 'fix-py26-tk86' 2014-04-03 22:38:34 +09:00
Yamashita Yuu
8e60ad8c6d Fix build of Tkinter with Tcl/Tk 8.6 (fixes #131) 2014-04-03 22:35:35 +09:00
Yamashita, Yuu
a841f42d53 Merge pull request #152 from yyuu/readline63
Fix CPython build problem with Readline 6.3 (fixes #126, fixes #149)
2014-04-03 22:18:36 +09:00
Yamashita Yuu
08367dbb83 Update setuptools (3.3 -> 3.4.1) 2014-04-01 17:15:31 +09:00
Yamashita Yuu
6222bb743d Just display warning if .pydistutils.cfg exists. 2014-04-01 00:01:51 +09:00
Yamashita Yuu
bce58e9d9a Merge branch 'osx-clang-gcc' (fixes #148)
Conflicts:
	plugins/python-build/share/python-build/2.6-dev
2014-03-30 05:07:41 +09:00
Yamashita Yuu
d4e6a4c3d3 Merge branch 'remove-2.6-dev' 2014-03-29 19:16:23 +09:00
Yamashita Yuu
9eef6c536b The 2.6 branch no longer exists in CPython repo 2014-03-29 17:37:53 +09:00
Yamashita Yuu
d737ae9f03 Fix build problem of CPython 3.1 with Readline 6.3 (#126, #131, #149) 2014-03-29 16:41:26 +09:00
Yamashita Yuu
2da9bfd1f8 Fix build problem of CPython 3.2 with Readline 6.3 (#126, #131, #149) 2014-03-29 16:37:06 +09:00
Yamashita Yuu
3136fce0c0 Fix build problem of CPython 3.3 with Readline 6.3 (#126, #131, #149)
The patch was taken from CPython 3.3.5
2014-03-29 16:36:56 +09:00
Yamashita Yuu
cce1960de0 Fix build problem of CPython 2.6 with Readline 6.3 (#126, #131, #149) 2014-03-29 16:36:36 +09:00
Yamashita Yuu
6641e291ee Fix build problem of CPython 2.7 with Readline 6.3 (#126, #131, #149)
The patch was taken from latest changes in CPython 2.7

* http://hg.python.org/cpython/rev/79b82ebc4fd1
* http://hg.python.org/cpython/rev/5e42e5764ac6
* http://hg.python.org/cpython/rev/0b5b0bfcc7b1
2014-03-29 16:29:21 +09:00
Yamashita Yuu
f5fded3b9d Use cc as $CC if require_cc has called (#148) 2014-03-29 13:09:06 +09:00
Yamashita Yuu
cac8fd7f60 Use colorize in require_clang and require_java 2014-03-29 13:03:01 +09:00
Yamashita Yuu
b55830fb01 Display anaconda_architecture on errors (yyuu/pyenv-virtualenv#18) 2014-03-25 11:44:42 +09:00
Yamashita Yuu
5b9b3f742b Display pypy_architecture on errors 2014-03-25 11:44:35 +09:00
Yamashita Yuu
34065dddbb reads only the first word from file 2014-03-24 19:42:52 +09:00
Yamashita Yuu
ea9214bb2e ignores carriage returns 2014-03-24 18:15:40 +09:00
Mislav Marohnić
f71e22768c Merge pull request #567 from genezys/patch-1
Remove carriage return characters in version file

Fixes #566
2014-03-21 17:22:03 +01:00
Vincent Robert
b025dfcf58 Add \r to IFS instead of removing it manually 2014-03-21 01:36:39 +01:00
Vincent Robert
f205ec8359 Move carriage return test to version-file-read 2014-03-21 01:32:29 +01:00
Vincent Robert
f50cee2ac7 Simplify bash expression 2014-03-20 16:52:45 +01:00
Vincent Robert
3be9773c4f Add test for carriage return in ruby-version file 2014-03-20 16:27:13 +01:00
Vincent Robert
2fd3b18d39 Remove carriage return characters in version file
When created on Windows, .rbenv-version or .ruby-version files may have CR characters that will prevent rbenv from correctly parsing the Ruby version. Discard those characters when reading the file.
2014-03-20 11:30:27 +01:00
Yamashita Yuu
d90cb0ec85 Merge branch 'try-python-module' 2014-03-14 23:03:53 +09:00
Yamashita, Yuu
d75e12298a Merge pull request #141 from Zearin/docs
Updated README.md; Commands moved to COMMANDS.md.
2014-03-22 15:58:31 +09:00
Zearin
addec6339f COMMANDS.md: Match order of commands from pyenv --help
Also added `help` output for `pyenv {,un}install`, since those sections didn’t exist before.

They should probably be revised at some point.  In the meantime, I think something is better than nothing (in this case).
2014-03-20 09:33:32 -04:00
Zearin
abab44df80 COMMANDS.md: Add commands from pyenv --help 2014-03-20 09:24:31 -04:00
Zearin
4afa280066 COMMANDS.md: Minor formatting 2014-03-20 09:20:20 -04:00
Zearin
5c6a812b86 README.md: Add dividers between major sections 2014-03-20 09:19:11 -04:00
Zearin
650c9a3d6e README.md: Minor formatting 2014-03-20 09:17:53 -04:00
Zearin
0933c40179 Move command reference to COMMANDS.md 2014-03-20 09:13:15 -04:00
Yamashita, Yuu
2613e84447 Merge pull request #140 from Zearin/patch-1
README.md: Minor edits and formatting
2014-03-20 12:36:07 +09:00
Tony
d1f78c2716 README.md: Minor edits and formatting 2014-03-19 15:00:54 -04:00
Yamashita, Yuu
cf89abaacf Merge pull request #136 from chronoslynx/master
fix: anaconda_architecture mispelled MacOSX as MaxOSX
2014-03-18 01:16:03 +09:00
Tim Swihart
545052d5ca MacOSX was mispelled as MaxOSX 2014-03-17 09:06:24 -07:00
Yamashita Yuu
0d51899e9b v0.4.0-20140317 2014-03-17 21:51:40 +09:00
Yamashita Yuu
fa32d81579 Update changelog 2014-03-17 21:50:23 +09:00
Yamashita Yuu
164f7bf4a6 Removed beta releases of 3.4.0 (#133) 2014-03-17 18:42:19 +09:00
Yamashita Yuu
7bdd097254 Update setuptools (3.1 -> 3.3) 2014-03-17 17:08:06 +09:00
Yamashita, Yuu
5ae1c803cb Merge pull request #133 from makotosasaki/3.4.0
Add CPython 3.4.0
2014-03-17 16:24:26 +09:00
Makoto Sasaki
f536dca41f Add CPython 3.4.0 2014-03-17 16:06:09 +09:00
Yamashita Yuu
8d951d5025 Remove unused functions. 2014-03-14 22:51:34 +09:00
Yamashita Yuu
5c31c45d05 Do not exit with errors even if some of modules are absent 2014-03-14 22:51:32 +09:00
Yamashita Yuu
0851436caa Add /anaconda-(1.9.0|1.9.1)/ and /miniconda3?-(3.0.4|3.0.5)/ 2014-03-14 21:27:31 +09:00
Daniel Hahler
024bee1a6f Use mktemp -d for RBENV_TEST_DIR
This prevents the tests from removing an existing directory.

Fixes #561 (https://github.com/sstephenson/rbenv/issues/561)
2014-03-13 20:42:34 +01:00
Daniel Hahler
44c20af80e Optimize pyenv-which: implement remove_from_path in Bash
This greatly improves the performance of `pyenv virtualenvwrapper_lazy`,
which happens to call pyenv-which a lot.

For profiling I've initially used:

    % zmodload zsh/zprof
    % eval "$(pyenv init -)"
    % pyenv virtualenvwrapper_lazy

    Before:
    % zprof|grep -E '(pyenv|virtualenv)'
     1)    1         754,07   754,07   58,95%    751,50   751,50   58,75%  pyenv
    21)    1           2,57     2,57    0,20%      2,57     2,57    0,20%  virtualenvwrapper_setup_lazy_loader
     1)    1         754,07   754,07   58,95%    751,50   751,50   58,75%  pyenv
           1/1         2,57     2,57    0,20%      2,57     2,57             virtualenvwrapper_setup_lazy_loader [21]
           1/1         2,57     2,57    0,20%      2,57     2,57             pyenv [1]
    21)    1           2,57     2,57    0,20%      2,57     2,57    0,20%  virtualenvwrapper_setup_lazy_loader

    After:
    % zprof|grep -E '(pyenv|virtualenv)'
     1)    1         383,30   383,30   27,97%    380,88   380,88   27,79%  pyenv
    31)    1           2,42     2,42    0,18%      2,42     2,42    0,18%  virtualenvwrapper_setup_lazy_loader
     1)    1         383,30   383,30   27,97%    380,88   380,88   27,79%  pyenv
           1/1         2,42     2,42    0,18%      2,42     2,42             virtualenvwrapper_setup_lazy_loader [31]
           1/1         2,42     2,42    0,18%      2,42     2,42             pyenv [1]
    31)    1           2,42     2,42    0,18%      2,42     2,42    0,18%  virtualenvwrapper_setup_lazy_loader

Fixes https://github.com/yyuu/pyenv-virtualenvwrapper/issues/13
2014-03-13 19:21:32 +01:00
Yamashita Yuu
65ae0a3261 v0.4.0-20140311 2014-03-11 11:55:44 +09:00
Yamashita Yuu
24df447e44 Update changelog 2014-03-11 11:54:16 +09:00
Yamashita Yuu
a380250881 Update setuptools (2.2 -> 3.1) 2014-03-11 11:53:13 +09:00
Yamashita Yuu
ff38d6935d Add CPython 3.4.0rc3 2014-03-11 11:44:06 +09:00
Yamashita Yuu
27e1c25cf7 Remove release candidates of CPython 3.3.5 2014-03-11 11:41:01 +09:00
Yamashita Yuu
a5c34a6c00 Add CPython 3.3.5 (closes #127) 2014-03-11 11:39:49 +09:00
Yamashita Yuu
6e01f83742 Simplify anaconda/miniconda definitions 2014-03-10 21:16:52 +09:00
Yamashita Yuu
47ce2155b4 Merge branch 'pypy-binary-compatibility' 2014-03-05 20:47:40 +09:00
Yamashita Yuu
0c6b28c9aa Display warning if the PyPy is not built for the distro (#122) 2014-03-05 20:44:20 +09:00
Yamashita, Yuu
4d22259ac3 Merge pull request #125 from shurane/patch-1
Addendum for `pyenv install` usage
2014-03-04 18:46:49 +09:00
Ehtesh Choudhury
7ed908bad1 Addendum for pyenv install usage
This gives users an idea of which versions of python are available. Other version managers ([nvm](https://github.com/creationix/nvm), [rvm](https://rvm.io/rubies/list), etc) tell users how to list available versions as well.
2014-03-03 17:11:23 -05:00
Yamashita, Yuu
dcc7185ae1 Merge pull request #123 from makotosasaki/1
Added python 3.3.5rc2
2014-03-03 21:31:40 +09:00
Makoto Sasaki
cc423566a8 Added python 3.3.5rc2 2014-03-03 19:52:49 +09:00
Yamashita Yuu
e488b31597 Import recent changes from ruby-build 20140225 2014-03-03 11:22:39 +09:00
Yamashita, Yuu
5bbfcf75f6 Merge pull request #121 from makotosasaki/01
Added python 3.3.5rc1 and 3.4.0rc2
2014-02-28 11:26:13 +09:00
Makoto Sasaki
8164af44b4 Added python 3.3.5rc1 and 3.4.0rc2 2014-02-28 08:00:33 +09:00
Yamashita Yuu
a1ffc93372 Update pip (1.5.2 -> 1.5.4) 2014-02-25 17:11:40 +09:00
Yamashita, Yuu
9e1bbff8a1 Merge pull request #118 from ebertti/master
Change readme for issue #117
2014-02-21 13:17:37 +09:00
Ezequiel Bertti
6ee219b9c7 add automatic install by pyenv-installer 2014-02-21 00:57:42 -03:00
Yamashita Yuu
5f23e3d7b2 Refactoring.
Remove leading `build_package_` from `build_package_verify_python` and
`build_package_verify_import` since they are not `build_package`
functions.
2014-02-13 23:44:42 +09:00
Yamashita Yuu
854f6f3a46 Exits with error if there is ~/.pydistutils.cfg (#35, #111) 2014-02-13 21:06:13 +09:00
Yamashita Yuu
63ac2b717f Add comments 2014-02-13 21:02:38 +09:00
Yamashita, Yuu
81726b16be Merge pull request #114 from kpot/master
Added python 3.4.0rc1
2014-02-13 19:11:03 +09:00
kpot
4acab71e1e Added python 3.4.0rc1 2014-02-13 16:05:07 +06:00
Yamashita Yuu
8b8128e33b Merge branch 'release-0.4.0-20140211' 2014-02-11 12:13:57 +09:00
Yamashita Yuu
e835d447ed v0.4.0-20140211 2014-02-11 12:11:38 +09:00
Yamashita Yuu
7f44afc1c0 Remove 3.3.4rc1 (fixes #112) 2014-02-11 12:06:09 +09:00
Yamashita, Yuu
f380967e8d Merge pull request #113 from AustinMatherne/master
Add support for Python 3.3.4
2014-02-11 12:04:34 +09:00
Austin Matherne
d640941976 Add support for Python 3.3.4 2014-02-10 20:14:29 -06:00
Yamashita Yuu
e58ac666c4 Fix permission of installed definitinos 2014-02-09 11:20:59 +09:00
Yamashita Yuu
ce99decad5 Update changelog 2014-02-08 19:33:57 +09:00
Yamashita Yuu
719e6db358 Import recent changes from ruby-build 20140204 2014-02-08 19:31:35 +09:00
Yamashita Yuu
e0547de922 Update changelog 2014-02-08 18:51:59 +09:00
Yamashita Yuu
4b9907af1c Update setuptools (2.1.2 -> 2.2) 2014-02-08 18:37:06 +09:00
Yamashita Yuu
1d09851b2b Merge branch 'raspbian' 2014-02-08 01:06:35 +09:00
Yamashita Yuu
800ccaa5e3 Add armv6l and armv7l 2014-02-08 01:02:59 +09:00
Yamashita Yuu
00da261211 Install Raspbian binaries of pypy 2014-02-06 22:26:35 +09:00
Yamashita Yuu
b81d0ff0cd Update setuptools (2.1 -> 2.1.2) 2014-02-06 21:20:57 +09:00
Yamashita Yuu
715a7789ba Run python-build tests as script on travis-ci 2014-02-06 12:26:48 +09:00
Yamashita Yuu
6aa6d6b026 Fix broken test 2014-02-06 12:24:17 +09:00
Yamashita Yuu
62f9b7a731 Display error if wget doesn't support SNI (#60) 2014-02-06 12:18:41 +09:00
Yamashita Yuu
cc967fddb7 Refactor definitions of pypy 2014-02-04 21:03:51 +09:00
Yamashita Yuu
27ebc8bab7 Merge branch 'anaconda' 2014-02-04 18:33:37 +09:00
Yamashita Yuu
71db79eded Add old Anaconda/Miniconda releases 2014-02-04 13:46:07 +09:00
Yamashita Yuu
3aa263b51f Add Miniconda 3.0.0 2014-02-04 13:04:33 +09:00
Yamashita Yuu
59fbf8d103 Add Anaconda 1.8.0 2014-02-04 12:44:45 +09:00
Yamashita Yuu
b21d2c7dea Merge branch 'update-readme' 2014-01-29 18:01:29 +09:00
Yamashita Yuu
20e5404248 Update README about usage with multiple versions (#92) 2014-01-29 18:00:56 +09:00
Yamashita Yuu
56c58e2778 Modernize python versions in README 2014-01-29 17:54:01 +09:00
Yamashita Yuu
3c6ecaf66a Update pip (1.5.1 -> 1.5.2) 2014-01-27 21:55:58 +09:00
Yamashita Yuu
87ca55100b Add 3.3.4rc1 and 3.4.0b3 2014-01-27 21:52:23 +09:00
Yamashita Yuu
589872affb Set proper PYENV_VERSION during pyenv install 2014-01-27 15:04:51 +09:00
Yamashita Yuu
73d5ea7426 v0.4.0-20140123 2014-01-23 19:14:26 +09:00
Yamashita Yuu
b992ffca1d Merge branch 'rbenv-pr531' 2014-01-23 11:16:51 +09:00
Yamashita Yuu
9c82314570 Unset GREP_OPTIONS to avoid unexpected grep behavior (fixes #101) 2014-01-23 11:11:56 +09:00
Yamashita Yuu
403154e09e Update pip (1.5 -> 1.5.1) 2014-01-21 16:18:19 +09:00
Yamashita Yuu
b44398e954 Add .gitignore 2014-01-21 00:04:02 +09:00
Yamashita Yuu
46a01b1643 Merge branch 'enable-framework' 2014-01-18 10:08:37 +09:00
Yamashita Yuu
bf94eb8cbe Add workaround for --enable-framework to work with CPython 2.7.6 2014-01-18 09:59:17 +09:00
Yamashita Yuu
b225f2030d Add support for --enable-framework (#55, #99)
```
$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.3.2
```
2014-01-18 01:52:50 +09:00
Yamashita Yuu
cbe7d0241b Merge branch 'python-build-test' 2014-01-17 21:28:03 +09:00
Yamashita Yuu
e65a10be51 Add bats test for python-build 2014-01-17 21:18:22 +09:00
Yamashita Yuu
badc8255ab Do not invoke use_homebrew_readline twice 2014-01-17 21:09:52 +09:00
Yamashita Yuu
385d3337ef Merge branch 'ensurepip' 2014-01-16 18:33:26 +09:00
Yamashita Yuu
558200285b Use ensurepip to install pip if available 2014-01-16 18:10:52 +09:00
Yamashita Yuu
2c26b0870a Setup built-in patches out from stub functions of `{before,after}_install_package}. 2014-01-15 17:20:41 +09:00
Yamashita Yuu
2cea06b88a Sort built-in patches by its name 2014-01-15 17:09:58 +09:00
Yamashita Yuu
c977774977 Merge branch 'issue98' 2014-01-15 16:42:14 +09:00
Yamashita Yuu
314937d599 Set PYENV_BIN_PATH in PATH even if the version is system (fixes #98) 2014-01-15 16:41:06 +09:00
Yamashita Yuu
07ae0d8e42 Import changes from ruby-build 20140110.1 2014-01-10 20:05:01 +09:00
Yamashita Yuu
461c5bbc2d Merge branch 'release-0.4.0-20140110.1' 2014-01-10 15:04:36 +09:00
Yamashita Yuu
a7f5a19a24 v0.4.0-20140110.1 2014-01-10 15:04:16 +09:00
Yamashita Yuu
f344731cf9 Merge branch 'osx-llvm-gcc' 2014-01-10 13:17:16 +09:00
Yamashita Yuu
a3f35b7e0d Fallback to use clang if there is gcc not installed 2014-01-10 13:16:37 +09:00
Yamashita Yuu
b025dbfdab Add require_cc again 2014-01-10 13:15:56 +09:00
Yamashita Yuu
efd9c1cd48 Merge branch 'release-0.4.0-20140110' 2014-01-10 11:28:17 +09:00
Yamashita Yuu
38eb9fe948 v0.4.0-20140110 2014-01-10 11:27:43 +09:00
Yamashita Yuu
6ee7aaf611 Should not recognize cc as clang 2014-01-09 18:18:50 +09:00
kou1okada
5c1094adb9 Response enhancement for in the case of the working directory under the UNC path.
finding_local_version_file is extremely slow, when working directory is under the UNC path.
Because //host/.rbenv-version and //.rbenv-version do not exist, but testing them is so slow.
It's the reason to make a serious delay of the response, when the Ruby runs with a current working directory under the UNC path under Cygwin environment.

A response of before applying this patch.
//somehost/somedir $ time ruby -e "exit"

real    0m13.922s
user    0m0.168s
sys     0m0.287s

A response of after applying this patch.
//somehost/somedir $ time ruby -e "exit"

real    0m0.721s
user    0m0.153s
sys     0m0.319s
2014-01-09 15:31:29 +09:00
Yamashita Yuu
93ba3a4c51 Use same require_gcc as ruby-build 2014-01-08 22:34:10 +09:00
Yamashita Yuu
34087d03ec Add build status badge 2014-01-08 21:47:36 +09:00
Yamashita Yuu
f136b219db Update pip (1.4.1 -> 1.5) 2014-01-08 21:44:19 +09:00
Yamashita Yuu
84705cfe61 Update setuptools (2.0.2 -> 2.1) 2014-01-08 21:42:59 +09:00
Yamashita Yuu
2a9f6038e0 Use package_option() to setup configure options 2014-01-08 11:49:48 +09:00
Yamashita Yuu
0e3e603429 Don't check $(uname -s) twice 2014-01-08 10:56:43 +09:00
Yamashita Yuu
71a916faf2 simplicy the check for infinite loop 2014-01-08 10:54:11 +09:00
Yamashita Yuu
8e02b93e39 Call build_package_ldflags_dirs to suppress linker warnings 2014-01-07 12:46:40 +09:00
Yamashita Yuu
a7a99c75eb Apply patch only if there are patches exist for the package 2014-01-07 11:52:22 +09:00
Yamashita Yuu
bb3b5de179 Add CPython 3.4.0b2 2014-01-06 13:03:40 +09:00
Yamashita Yuu
f956502fd8 Merge branch 'avoid-infinite-loop-even-if-pwd-returns-relative-path' 2014-01-03 08:36:05 +09:00
Yamashita Yuu
4c5ffc8d99 Avoid infinite loop in case where pwd returns relative path
The `pwd` may return relative path if the `$PWD` is badly declared
in bash/zsh (e.g. `PWD="." bash`). To avoid the infinite loop in
`find_local_version_file()`, stop finding the version file if the
target paths are same consecutively.
2014-01-03 08:35:39 +09:00
Yamashita Yuu
8dc4e8d6f8 Revert "Merge branch 'golang-workaround'"
This reverts commit 7edceff71c, reversing
changes made to 5dea3c9e63.
2014-01-03 07:39:52 +09:00
Mislav Marohnić
14bc162ca6 Merge branch 'openbsd'
Closes #524
2014-01-02 22:44:19 +01:00
Mislav Marohnić
1a6bada94c Fix detecting parent shell on OpenBSD and Cygwin
It seems that "comm" header can't be relied on cross-platform, but that
"ucomm" is more portable. I have no idea whether it's the right value to
use here, but it seems to be doing the job.

Also strip trailing whitespace because OpenBSD 5.4 `ps` output is padded
with spaces for some reason.

Fixes #489
2014-01-02 22:36:03 +01:00
Mislav Marohnić
eda535a942 Fix detecting completions support on OpenBSD
The non-extended regex pattern didn't work on OpenBSD so this switches
grep to extended pattern mode that seems to work consistenty on all
systems.
2014-01-02 22:33:54 +01:00
Mislav Marohnić
1e1c9cb0dc Fix emulating the scenario where system Ruby is missing on OpenBSD
On other systems, we expected to find system Ruby in `/usr/bin`, but in
OpenBSD 5.4 it will be found in `/usr/local/bin`.

This replaces the limited USRBIN_ALT hack with a more generic
`path_without` function that will ensure that the given executable is
not present in the resulting PATH even if it's found in multiple
system paths.
2014-01-02 22:30:21 +01:00
Yamashita Yuu
7edceff71c Merge branch 'golang-workaround' 2014-01-03 06:23:03 +09:00
Mislav Marohnić
3dc0005032 Fix test suite running on OpenBSD
The error was "bash: no such file or directory" and it was due to bash
being located in `/usr/local/bin` on OpenBSD 5.4 instead of `/bin` like
on other systems.

Fixed by keeping `/usr/local/bin` in PATH during the test run.
2014-01-02 22:17:38 +01:00
Yamashita Yuu
1587d8a03c Apply readlink to output from pwd may returns "." to get actual path 2014-01-03 05:07:21 +09:00
Yamashita Yuu
5dea3c9e63 Import changes from recent rbenv 2014-01-03 04:58:44 +09:00
Yamashita Yuu
12d4fdb307 Merge branch 'unittest' (#21) 2014-01-03 04:43:44 +09:00
Yamashita Yuu
319721b380 Modify applications and versions for Python 2014-01-03 04:41:23 +09:00
Yamashita Yuu
3dd9332eee Fix broken tests 2014-01-03 04:33:30 +09:00
Yamashita Yuu
88922e2bc0 Remove version-ext-compat plugin to make test success 2014-01-03 02:07:20 +09:00
Yamashita Yuu
0965577b93 Import tests from rbenv with sed -e s/rbenv/pyenv/g 2014-01-03 02:06:36 +09:00
Yamashita Yuu
f538169992 Restore OLDIFS expectedly 2014-01-03 01:47:10 +09:00
Yamashita Yuu
d03f290b5d s/rbenv/pyenv/ 2014-01-02 22:49:23 +09:00
Yamashita Yuu
8ddf8760d5 Import recent changes from rbenv 0.4.0 2014-01-02 22:45:02 +09:00
Mislav Marohnić
6d0bf9b39f Merge pull request #521 from wmoxam/master
Fix rbenv on OpenBSD

Fixes #519
2014-01-01 15:31:08 -08:00
wmoxam
2f5d9a6f90 Fixes rbenv on OpenBSD and any other systems that don't support head -c 2013-12-31 01:44:36 -05:00
Mislav Marohnić
783618b89c Force TAP output from Bats on CI
In Travis CI environment, Bats thinks it's outputting to an interactive
terminal, so it switches to "pretty" format and ANSI escape codes which
don't look well in the final output.
2013-12-25 18:14:10 +01:00
Jeffrey 'jf' Lim
4f2f6f8575 Fix test suite when no system Ruby exists
Some tests assumed that the `ruby` executable will be found in system PATH.

Fixes #512, closes #514
2013-12-25 18:14:10 +01:00
Mislav Marohnić
59aca30267 Merge pull request #491 from peterhoeg/master
ignore cache directory used by ruby-build
2013-12-17 10:15:09 -08:00
Sam Stephenson
605e691bff Merge pull request #504 from jonathandean/master
Remove Neckbeard reference in favor of Advanced
2013-12-14 13:57:54 -08:00
Jonathan Dean
09ec276a85 Change 'Advanced Configuration' reference to 'How rbenv hooks into your shell' 2013-12-14 16:38:25 -05:00
Jonathan Dean
590b19a1b1 Remove Neckbeard reference in favor of Advanced 2013-12-13 14:06:44 -05:00
Mislav Marohnić
be5e1a4ded Improve rbenv init instructions for fish
Fish user config file `~/.config/fish/config.fish` loads for every
instance of fish shell, not just interactive ones. Since it's
unnecessary and dangerous to eval `rbenv init -` output in
non-interactive shells, wrap the invocation in a conditional that checks
if the current shell is interactive.

Fixes #501
2013-12-06 16:45:22 +01:00
Peter Hoeg
8650de0c0c ignore cache directory used by ruby-build 2013-11-25 11:59:23 +08:00
Yamashita Yuu
8fa6b4a184 CPython installer requires existing Pyhthon of similar version. 2013-11-19 18:02:59 +09:00
Yamashita Yuu
e1a5b326e4 Merge branch 'ruby-build-style-patching' 2014-01-01 13:01:34 +09:00
Yamashita Yuu
8892f3735d Use -p0 for all patches to keep things simple (sstephenson/ruby-build#484)
There is filterdiff(1) available to transform strip level of a patch if
optional level is required.

```
git diff HEAD^ | filterdiff --strip=1 | pyenv install -p 3.3.3
```
2014-01-01 12:25:17 +09:00
Yamashita Yuu
9eedd4ef84 Update setuptools (2.0.1 -> 2.0.2) 2013-12-31 22:19:22 +09:00
Yamashita Yuu
b70dcb9f2d Add list_patches() to sort patches by their names 2013-12-26 16:31:43 +09:00
Yamashita Yuu
008a5a1ff9 Force PYTHON_BUILD_PATCH_PATH to be absolute path 2013-12-26 16:30:16 +09:00
Yamashita Yuu
5b7eb42a9f Add -p0 as an option for patch if both PATCH_OPTS and PACKAGE_PATCH_OPTS aren't defined 2013-12-26 15:44:56 +09:00
Yamashita Yuu
35d4cd2259 Remove PACKAGE_PATCH_STRIP. Use PACKAGE_PATCH_OPTS instead. 2013-12-26 14:01:46 +09:00
Yamashita Yuu
5bff9c773a Reliably detect parent shell in pyenv init (fixes #93)
Imported changes from sstephenson/rbenv#453.
2013-12-26 13:48:43 +09:00
Yamashita Yuu
6efb3c327f Revert setuptools version for jython-2.7-beta1 (2.0.1 -> 2.0)
Could not install setuptools 2.0.1 for jython-2.7-beta1 by the
lack of `parser` module.
2013-12-25 20:42:11 +09:00
Yamashita Yuu
1a05d9a8cd Merge branch 'apply-extra-patches' 2013-12-21 01:06:13 +09:00
Yamashita Yuu
df51c13323 Use cp -RPp to copy share directories recursively.
We have some patches for CPython in `share/python-build/patches`.
2013-12-21 01:04:19 +09:00
Yamashita Yuu
a025866bac Update setuptools (2.0 -> 2.0.1) 2013-12-21 00:50:28 +09:00
Yamashita Yuu
2797f3d80e Update README about PYTHON_PATCH_PATH. 2013-12-21 00:36:32 +09:00
Yamashita Yuu
0d85193f39 Remove -Wl,-rpath=... from LDFLAGS on Darwin to fix build.
We don't need to set `rpath` explicitly because the ld on Darwin
embeds the full paths to each dylib by default
2013-12-20 20:37:47 +09:00
Yamashita Yuu
4d534fed31 Merge branch 'enable-shared' 2013-12-20 18:36:42 +09:00
Yamashita Yuu
43212f64ed Pass rpath to linker if --enable-shared was given (#65, #66, #82) 2013-12-20 18:22:43 +09:00
Yamashita Yuu
75559df89d Search extra patches from given directory then apply it during build (#91)
```
$ env PYTHON_PATCH_PATH="./patches" PYTHON_PATCH_OPTS="-p1" pyenv install 2.7.6
```
2013-12-20 17:17:17 +09:00
Yamashita Yuu
3d5156ed1d v0.4.0-20131217 2013-12-17 11:46:44 +09:00
Yamashita Yuu
aa76fd2f9c On Darwin, should not build readline if there is brewed readline 2013-12-16 16:27:45 +09:00
Yamashita Yuu
db141f66a4 Restored has_broken_mac_llvm_gcc which is required to build 3.3+ on Darwin 2013-12-16 16:24:25 +09:00
Yamashita Yuu
fe07deb193 v0.4.0-20131216 2013-12-16 13:51:48 +09:00
Yamashita Yuu
7159e24aa8 Update ChangeLog 2013-12-16 13:50:52 +09:00
Yamashita Yuu
1cc90d31ae Import changes from ruby-build v20131211 2013-12-16 13:44:03 +09:00
Yamashita, Yuu
76bf3ee0d6 Merge pull request #88 from pwdtnx/fix-prefix-system
Fix pyenv-prefix to trim "/bin" in `pyenv prefix system`
2013-12-12 07:38:10 -08:00
Tanix
fd3dd225ba rewrite strip of PYENV_PREFIX_PATH in a single line 2013-12-12 23:05:31 +09:00
Tanix
140808e3d4 Fix pyenv-prefix to trim "/bin" in pyenv prefix system 2013-12-12 22:16:43 +09:00
Yamashita Yuu
edb5a32620 Update setuptools (1.4.2 -> 2.0) for Python 2.6+ 2013-12-12 18:20:57 +09:00
Yamashita Yuu
88e2d73d52 Update setuptools (1.4.1 -> 1.4.2) 2013-12-02 15:35:35 +09:00
Yamashita Yuu
7b95fea77e Add PyPy 2.2.1 2013-11-29 12:58:31 +09:00
Yamashita Yuu
20eb5c4913 Update setuptools (1.4 -> 1.4.1) 2013-11-27 20:48:06 +09:00
Yamashita Yuu
bc2d2456ae Add CPython 3.4.0b1 2013-11-25 16:07:27 +09:00
Yamashita, Yuu
064531ea1f Merge pull request #83 from thedrow/patch-1
Added a link about the common build problems.
2013-11-20 18:41:33 -08:00
Omer Katz
80b8508dbc Added a link about the common build problems. 2013-11-20 18:16:03 +02:00
Yamashita Yuu
02e073a503 remove useless patch from 2.6-dev 2013-11-20 19:06:40 +09:00
Yamashita Yuu
e094d683ed Update setuptools (1.3.2 -> 1.4) 2013-11-19 19:41:44 +09:00
Yamashita Yuu
bd1454c69f Remove 3.3.3-rc[12] because 3.3.3 has been released 2013-11-19 19:06:48 +09:00
Yamashita Yuu
b726d645c3 http://www.python.org/ -> http://python.org/ 2013-11-19 19:03:19 +09:00
Anthon van der Neut
78441ce084 Released Python 3.3.3 2013-11-19 18:56:02 +09:00
Yamashita Yuu
4953fa4034 Apply built-in patches only if patch is not given via STDIN 2013-11-19 05:58:21 +09:00
Yamashita Yuu
1f76effbfb Import changes from ruby-build v20131225.1 2013-12-27 18:44:54 +09:00
Yamashita Yuu
5e20237f5b v0.4.0-20131116 2013-11-16 19:29:30 +09:00
Yamashita Yuu
dd44d0a713 Add CPython 3.3.3 RC1/RC2 2013-11-16 19:04:42 +09:00
Yamashita Yuu
a28c040eb9 Add PyPy 2.2 (closes #77) 2013-11-15 12:32:57 +09:00
Yamashita Yuu
6a787dd951 Update setuptools (1.1.7 -> 1.3.2) 2013-11-11 20:44:24 +09:00
Yamashita Yuu
5d9132623f Add CPython 2.7.6 2013-11-11 20:41:53 +09:00
Mislav Marohnić
95a039aaaa Revert "rbenv exec: avoid mutating PATH"
It was supposed to fix shelling out to Ruby but it in fact broke another
kind of shelling out to Ruby: invoking the `ruby` binary directly with
the `-S` flag.

Fixes #480

This reverts commit db143bb654.
2013-11-03 12:18:28 +02:00
Yamashita Yuu
f7193b09fd Merge branch 'ruby-build-v20131030' 2013-11-01 18:30:24 +09:00
Yamashita Yuu
498d226b2f Import changes from ruby-build v20131030 2013-11-01 18:30:00 +09:00
Yamashita Yuu
ccc51244e3 Add CPython 2.6.9 2013-11-01 17:13:29 +09:00
Yamashita Yuu
516f49e913 Update setuptoos (1.1.6 -> 1.1.7) 2013-11-01 17:00:16 +09:00
Mislav Marohnić
f1fdb9bbc8 Avoid invoking hash -r in fish
It doesn't exist as a builtin, and it doesn't seem there is a way to
detect support for a shell builtin that is portable. So, just detect
fish and don't the rehash command at all.

Fixes #478
2013-10-31 20:18:14 +02:00
Mislav Marohnić
44e76bea23 Merge pull request #372 from sstephenson/exec-next
Change `exec` semantics to allow using rbenv from a ruby process
2013-10-29 18:53:33 -07:00
Mislav Marohnić
a898e2a534 Merge branch 'no-process-substitution' 2013-10-30 02:50:31 +01:00
Mislav Marohnić
681435e0b4 Simplify version-file-read to avoid process substitution
Process substitution seems to be causing problems with some versions of
bash on specific systems.

Fixes #401
2013-10-30 02:33:49 +01:00
Mislav Marohnić
d2eace00c9 Add more tests for version-file-read 2013-10-30 02:33:23 +01:00
Yamashita Yuu
a2ab3bc32c v0.4.0-20131023 2013-10-23 15:19:33 +09:00
Yamashita Yuu
ab4a8396e1 Add 3.4.0a4 2013-10-23 15:18:14 +09:00
Yamashita Yuu
733cb397b2 improve messages on failed import 2013-10-15 14:04:38 +09:00
Mislav Marohnić
3300587c6b strip initial - from the name of shell process
Avoids the case where shell detection would result in
`basename "-bash"` invocation, triggering the error:

    basename: illegal option -- b

fixes #462
2013-10-07 14:19:37 +02:00
Mislav Marohnić
878bd87328 reliably detect parent shell in rbenv init
`$SHELL` variable is a terrible way of detecting the current shell
because it's not even supposed to reflect the current shell; it's meant
for keeping the value of the default shell for programs to start.

If an explicit `<shell>` argument wasn't passed to `rbenv init`, it
tries to detect the shell by getting the name of its parent process. If
this fails, it falls back on the value of `$SHELL` as before.

Furthermore, `rbenv init` will set the RBENV_SHELL variable in the
current shell to the value of the detected shell so that `sh-shell` and
`sh-rehash` commands don't have to repeat the detection.
2013-10-07 03:24:45 +02:00
Yamashita Yuu
7f9a2325e5 Add 3.4.0a3 2013-10-04 12:52:05 +09:00
Yamashita Yuu
625b3b7ec1 Update setuptools (1.1.4 -> 1.1.6) 2013-10-04 12:49:41 +09:00
Gunes
ff23666d56 typo: remove "v" (version prefix) 2013-10-03 22:18:43 +02:00
Mislav Marohnić
f4fade3d26 better error message for rbenv prefix system
Have `rbenv prefix` handle the case where system Ruby is not installed,
i.e. `rbenv which ruby` doesn't find ruby in PATH.

Fixes #362
2013-10-03 21:42:52 +02:00
Mislav Marohnić
16c3e0ddac tweak installation instructions
Provide an `rbenv install` example and explanation lower down, so that
both folk that are following git install and Homebrew install will
finish at the same section and learn how to use ruby-build.

Also remove step 6 of manual install process: `rbenv rehash`. It's
unnecessary at that point, even if they already did `rbenv install`
(which rehashes automatically).

Fixes #455, closes #456
2013-10-03 20:52:13 +02:00
Mislav Marohnić
0d216c2d82 remove rbenv install example; clarify manual compile
It can be confusing if people mistake the example as instructions to
install ruby-build with.
2013-10-03 20:17:10 +02:00
Mislav Marohnić
a1fb5b1153 better Ubuntu Desktop installation instructions
Don't suggest that they add to their `.profile` anymore because:

1. They would have to restart the desktop session for their change to be
   reflected, or source the file manually;
2. An error in `.profile` may prevent logging in;
3. The `rbenv()` shell function and shell completions won't be available
   in Terminal since it doesn't start bash in login mode by default.

Therefore, suggest that they use `.bashrc` instead. This will be
immediately reflected in a new Terminal tab. If bash is started in login
mode somehow, the default `.profile` is set up to source `.bashrc` anyway.

Also, don't suggest restarting the shell environment with
`exec $SHELL -l`, since we don't know what was the original mode that
their shell was started in. (OS X Terminal.app will be login mode,
Ubuntu Terminal has non-login mode by default.) Mode can be checked with:

* bash: `shopt -q login_shell`
* zsh: `[[ $options[login] = "on" ]]`

But since this is gnarly, let's just avoid it altogether and go the
easy route.

Closes #305, fixes #373, reverts #286
2013-10-03 20:07:22 +02:00
Mislav Marohnić
e97326845c Ubuntu fix: don't use . in place of source
If `rbenv init -` outputs `.` in place of `source` and that gets eval'd
by the desktop manager via `~/.profile`, it chokes and prevents the user
from logging in.

Fixes #457
2013-10-03 16:12:24 +02:00
Yamashita Yuu
c95d446c53 Merge branch 'improved-fish-support' 2013-09-30 18:02:54 +09:00
Yamashita Yuu
6e749ef12f Import recent changes relating to fish from rbenv 2013-09-30 18:02:12 +09:00
Mislav Marohnić
71a6d791c2 Merge branch 'shell-fixes' 2013-09-28 16:15:13 +02:00
Mislav Marohnić
5ae2cac088 fix rbenv() function in ksh and dash
ksh syntax becomes:

    function rbenv {
      typeset command

`typeset` only declares a local variable if there's an explicit
`function` declaration; otherwise the variable leaks.

Other shells use this syntax:

    rbenv() {
      local command

This is for dash compatibility, which supports neither `function` nor
`typeset`.

references #205, fixes #408
2013-09-28 16:12:53 +02:00
Mislav Marohnić
31fab8cdae cleanup in fish
Use process subtitution syntax:

    . (rbenv init -|psub)

instead of:

    eval (rbenv init -)

because the latter doesn't work well with newlines.
2013-09-28 16:12:43 +02:00
Yamashita Yuu
5bfec84432 add fish shell support 2013-09-28 16:11:02 +02:00
Jeffrey 'jf' Lim
caa4a8e228 fix rehash when paths have spaces in them
fixes #450
2013-09-26 01:42:34 +02:00
Yamashita Yuu
850dd87332 Merge branch 'appropriate-tar-options' 2013-09-14 17:00:32 +09:00
Yamashita Yuu
fb3e9b020e Use appropriciate tar option per compression types (#58) 2013-09-14 16:50:52 +09:00
Yamashita, Yuu
02a348b657 Merge pull request #57 from rluders/patch-1
Ubuntu environment configuration
2013-09-13 03:10:29 -07:00
Ricardo Lüders
5c41dc3901 Ubuntu environment configuration 2013-09-12 21:07:40 -03:00
Yamashita Yuu
74a3c55623 Add CPython 3.4.0a2 2013-09-10 21:32:01 +09:00
Yamashita Yuu
bc8c8a6cd9 Update setuptools (1.1 -> 1.1.4) 2013-09-10 21:31:55 +09:00
Mislav Marohnić
bdcc2e1790 check if completion script is readable
fixes #444
2013-09-09 09:53:50 +02:00
Ryan Bigg
749f21e482 Install a more recent version of Ruby in README instructions 2013-09-09 10:41:04 +10:00
Yamashita Yuu
99bc72a908 Wipe out CPython-specific scripts from build_package_standard() 2013-09-02 17:13:17 +09:00
Yamashita Yuu
aab8bb262d Update setuptools (1.0 -> 1.1) 2013-08-29 12:14:36 +09:00
Yamashita, Yuu
f14a4ef8e5 Merge pull request #54 from apbarrero/alternative_install
Installation instructions for any installation directory.
2013-08-28 00:18:45 -07:00
Antonio Perez Barrero
3bf50856ce Installation instructions for any installation directory.
Updated README.md contents so that installation instructions cover
not only the common case for installation directory, i.e. `~/.pyenv`
but any other at the user's choice.
2013-08-28 08:33:18 +02:00
Yamashita, Yuu
c3e55aa5ae Merge pull request #53 from stephendavis89/master
Fix spelling error in README
2013-08-27 20:05:12 -07:00
Stephen Davis
704548336a Fix spelling error 2013-08-27 15:27:57 -04:00
Yamashita Yuu
0ea5e12b4a Update changelog 2013-08-23 18:40:12 +09:00
Yamashita Yuu
28fd240de2 Update setuptools (0.9.7 -> 1.0) 2013-08-23 18:36:21 +09:00
Yamashita Yuu
586c0e6d62 Update pip (1.4 -> 1.4.1) 2013-08-23 18:31:22 +09:00
Yamashita, Yuu
c920eaa9be Merge pull request #49 from yyuu/fish-support
Fish support (#32)
2013-08-15 20:44:10 -07:00
Yamashita Yuu
d2f210d70d Implement sub-command completion for fish shell 2013-08-16 12:24:53 +09:00
Yamashita Yuu
683036298e fish doesn't have builtin command equivalent to bash's hash -r. 2013-08-15 22:56:57 +09:00
Yamashita Yuu
93b536863f Support fish shell 2013-08-15 22:56:53 +09:00
Yamashita Yuu
403f4eb7a7 Preserve original IFSs 2013-08-15 22:29:47 +09:00
Yamashita Yuu
4c71f3c5cd Apply --with-pydebug configure option only for Python 2013-08-08 11:58:01 +09:00
Aaron Stone
1cc75362d6 Clarify the search precedence for .ruby-version files.
Closes #432 [ci skip]
2013-08-07 22:37:21 +02:00
Yamashita Yuu
106e4cae90 Homebrew homepage location changed 2013-08-06 22:57:45 +09:00
Yamashita Yuu
10221d51f1 Add 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5 2013-08-02 00:32:09 +09:00
Yamashita Yuu
aff87c3cb3 Rename; pypy-py3k-dev -> pypy3-dev 2013-08-02 00:13:50 +09:00
Yamashita Yuu
b0f640db61 Add pypy3-2.1-beta1 2013-08-02 00:13:50 +09:00
Yamashita Yuu
af0fed2e34 Add pypy-2.1 2013-08-01 23:58:33 +09:00
Yamashita Yuu
e996f2f51a Merge branch 'py24-multiarch-patch' 2013-08-01 23:23:30 +09:00
Yamashita, Yuu
0fe18d0dc1 Merge pull request #45 from Domon/fix-formatting-in-readme
Fix formatting in the Homebrew section of README
2013-08-01 03:16:48 -07:00
Chun-wei Kuo
cc6c45d7fb Fix formatting in the Homebrew section of README 2013-08-01 18:01:38 +08:00
Yamashita Yuu
2646c6c159 Add _multiarch_ patch to fix build of CPython 2.4.x 2013-08-01 17:26:37 +09:00
Yamashita Yuu
ce66352f6d v0.4.0-20130726 2013-07-26 16:59:51 +09:00
Yamashita Yuu
9e133adf99 Merge branch 'ruby-build-20130628' 2013-07-26 00:05:19 +09:00
Yamashita Yuu
b1851f2aff Update README 2013-07-25 17:19:59 +09:00
Yamashita Yuu
b943e0abff Import changes from ruby-build v20130628 2013-07-25 17:19:55 +09:00
Ryan Bigg
a2adc61c6f Merge pull request #428 from almog/master
Homebrew homepage moved to a new location
2013-07-24 15:33:14 -07:00
Almog Kurtser
c7208bf1ff Homebrew homepage location changed 2013-07-25 00:02:05 +03:00
Yamashita Yuu
d6d556911b Merge branch 'fix-build-on-suse' (fixes #36) 2013-07-24 22:57:59 +09:00
Yamashita Yuu
b8ecd2d6dd Specify --libdir on configure to fix build on openSUSE (#36) 2013-07-24 18:43:20 +09:00
Yamashita Yuu
1e5ef005fb Update setuptools (0.9.5 -> 0.9.7) 2013-07-24 17:17:48 +09:00
Yamashita Yuu
d11db0f0f2 Update pip for Python 2.6+ (1.3 -> 1.4) 2013-07-24 17:09:40 +09:00
Yamashita, Yuu
8e43e72082 Merge pull request #37 from flavio/build_python_2_4
Allow installation of python 2.4.2
2013-07-23 23:37:31 -07:00
Flavio Castelli
ae86a253e2 Allow installation of python 2.4 series
Make possible to install python 2.4.2 and 2.4.6.
2013-07-22 14:53:09 +02:00
Yamashita Yuu
0c38147fcb Fix build of native modules of Carbon/ncurses on OS X 10.7 2013-07-20 20:53:38 +09:00
Yamashita Yuu
e1ea64b0b9 Merge branch 'issue33' 2013-07-19 22:02:16 +09:00
Yamashita Yuu
fa35e792c1 Backport libffi-osx from 2.7.5 to build ctypes on OS X (#33) 2013-07-19 21:47:51 +09:00
Yamashita Yuu
f5807424c2 Add patches for 2.5 to fix biuld on OS X 10.7/10.8 (#33) 2013-07-19 18:08:02 +09:00
Yamashita Yuu
4c006959fa fix broken string match in has_broken_mac_llvm_gcc() 2013-07-17 17:02:23 +09:00
Yamashita Yuu
f9a19e3f24 s/gcc_llvm/llvm_gcc/g 2013-07-17 16:38:57 +09:00
Yamashita Yuu
d5c24f5122 Update setuptools (0.8 -> 0.9.5) 2013-07-17 15:51:19 +09:00
Yamashita Yuu
392e404cc6 Use https instead of http when downloading from pypi 2013-07-08 16:27:01 +09:00
Yamashita Yuu
b04e067c83 update setuptools (0.7.7 -> 0.8) 2013-07-08 16:25:24 +09:00
Yamashita Yuu
ed2937f4d1 update setuptools (0.7.4 -> 0.7.7) 2013-07-04 17:23:38 +09:00
Yamashita Yuu
8848006540 remove meaningless break (fixes #26) 2013-07-03 11:15:58 +09:00
Yamashita Yuu
7a4fe458b8 Merge branch 'llvm-gcc-4.2-on-osx' 2013-06-29 12:32:35 +09:00
Yamashita Yuu
f76faa88b8 add has_broken_mac_gcc_llvm and use clang if true 2013-06-29 12:27:33 +09:00
Yamashita Yuu
9ce760c798 add require_cc() to test existence of CC other than GCC 2013-06-28 12:18:45 +09:00
Yamashita Yuu
152ebe6e61 Download GNU Readline from mirror site of GNU 2013-06-27 12:28:34 +09:00
Yamashita Yuu
1a6eb80bcd should not declare IFS in toplevel 2013-06-21 19:37:58 +09:00
Mislav Marohnić
db143bb654 rbenv exec: avoid mutating PATH
Enables shelling out from a ruby process started with rbenv to a ruby
process with a different RBENV_VERSION. Fixes #121

This removes the workaround created for #15 and solves `ruby -S` support
by setting RUBYPATH. PATH is never changed.

To illustrate how RUBYPATH changes in various configurations:

    PATH=~/bin:~/.rbenv/shims:/usr/bin:/bin
    RBENV_VERSION=1.8 ruby -S rake
    #=> executes ~/.rbenv/versions/1.8/bin/rake
    #=> RUBYPATH=~/bin:~/.rbenv/versions/1.8/bin:/usr/bin:/bin

    RBENV_VERSION=2.0 ruby -S rake
    #=> executes ~/.rbenv/versions/2.0/bin/rake
    #=> RUBYPATH=~/bin:~/.rbenv/versions/2.0/bin:/usr/bin:/bin

    RBENV_VERSION=system ruby -S rake
    #=> executes /usr/bin/rake
    #=> RUBYPATH=~/bin:/rbenv_shims_were_here:/usr/bin:/bin

    RBENV_VERSION=1.8 ruby -S rake
    #=> executes ~/.rbenv/versions/1.8/bin/rake
    #=> RUBYPATH=~/bin:~/.rbenv/versions/1.8/bin:/usr/bin:/bin
2013-06-20 20:41:22 +02:00
Mislav Marohnić
8b043038b8 ensure cleaner PATH in test environment 2013-06-20 20:41:22 +02:00
Yamashita Yuu
745bceac22 update setuptools (0.7.2 -> 0.7.4) 2013-06-20 12:31:18 +09:00
Yamashita Yuu
583f3b0e21 fix build of 3.4-dev. append existing 3.4 at the last.
this is because `hg` (which is a dependency of *-dev build) might be
installed in existing pyenv versions.
2013-06-19 18:48:58 +09:00
Yamashita Yuu
cc9c72747a v0.4.0-20130613 2013-06-13 20:52:10 +09:00
Yamashita Yuu
b473f7a271 add CHANGELOG.md 2013-06-13 20:51:17 +09:00
Yamashita Yuu
b726ace943 update README about Homebrew 2013-06-13 20:04:37 +09:00
Yamashita Yuu
499edda1d7 Merge branch 'preparing-removal-of-pyenv-version-ext' 2013-06-13 12:40:13 +09:00
Yamashita Yuu
3bfd91de51 rename to version-ext-compat because pyenv-version-ext must precede
than compatibility plugin.
2013-06-13 12:37:35 +09:00
Yamashita Yuu
c7e139186b update README 2013-06-13 12:20:31 +09:00
Yamashita Yuu
7c84490649 ignore pyenv-version-ext-compat plugin 2013-06-13 12:14:17 +09:00
Yamashita Yuu
b75ef17db7 add deprecation warning for push/pop commands 2013-06-13 12:13:41 +09:00
Yamashita Yuu
daa12e97c6 rename plugin 2013-06-13 12:04:09 +09:00
Yamashita Yuu
1c5eb82e93 Merge branch 'has_broken_mac_readline' (fixes #23) 2013-06-13 11:32:12 +09:00
Yamashita Yuu
ff387010b3 use environment variable "${CPP}" if defined 2013-06-12 20:43:19 +09:00
Yamashita Yuu
27dd805acb enable require_gcc to confirm if there is $CC 2013-06-12 16:11:07 +09:00
Yamashita Yuu
5f1761645f fix has_broken_mac_openssl for building Python.
`--with-*-dir` is only effective for Ruby's mkmf.rb.
2013-06-12 16:09:41 +09:00
Yamashita Yuu
f8c9282e8c Install GNU Readline on Darwin if the readline is broken (refs #23)
The `has_broken_mac_readline` checks the existence of
`readline/rhconf.h`. This is the same mechanism as setup.py of CPython.
2013-06-12 16:04:20 +09:00
Yamashita Yuu
37f46df390 Merge branch 'setuptools-0.7.2' 2013-06-10 12:50:25 +09:00
Yamashita Yuu
4f8138c70a update setuptools for jython versions (distribute 0.6.45 -> setuptools 0.7.2)
https://bitbucket.org/pypa/setuptools/issue/14/installation-failed-on-jython
2013-06-10 12:48:05 +09:00
Yamashita Yuu
db3b4773bc update setuptools (0.7.1 -> 0.7.2) 2013-06-10 12:38:38 +09:00
Marc Huffnagle
5130b41f5b suggest cloning rbenv via https instead of git:// 2013-06-07 19:25:29 +02:00
James FitzGibbon
81bb14e181 bail out early if readlink is not available
readlink comes from GNU coreutils.  On systems without it, rbenv used to
spin out of control when it didn't have readlink or greadlink available
because it would re-exec the frontend script over and over instead of the
worker script in libexec.

Fixes #389
2013-06-07 19:16:38 +02:00
Mislav Marohnić
e93ab45dc3 work around bug in git 1.8.2.1 in tests
Making empty commits in tests blocked by opening the default text
editor, waiting for a message which we specified to be empty.

http://thread.gmane.org/gmane.comp.version-control.git/225529
2013-06-07 19:13:54 +02:00
Yamashita Yuu
fe04103e24 update comment about new setuptools and Jython 2013-06-05 14:58:51 +09:00
Yamashita Yuu
7777bb6d58 Merge branch 'new-setuptools' 2013-06-04 20:39:04 +09:00
Yamashita Yuu
e9bcd9e0bd replace distribute by new setuptools 2013-06-04 20:31:08 +09:00
Yamashita Yuu
2cc2c22094 add SSLv2 patch for 2.7 and 2.7.1 2013-06-04 20:18:16 +09:00
Yamashita Yuu
319000b448 pyenv-prefix returns wrong prefix if system is given in the middle of arguments. 2013-06-04 17:35:23 +09:00
Yamashita Yuu
b4ba76a15a Merge branch 'version-ext-plugin' 2013-06-01 15:27:04 +09:00
Yamashita Yuu
3ff0785fe7 prepare README and install.sh for pyenv-version-ext 2013-06-01 15:26:41 +09:00
Yamashita Yuu
1b7d3b0502 move pyenv-sh-{push,pop} into plugins since they aren't from rbenv 2013-06-01 15:14:18 +09:00
Yamashita Yuu
c43711a216 update distribute (0.6.43 -> 0.6.35) 2013-05-31 18:48:42 +09:00
Yamashita Yuu
3c86d811c8 Merge branch 'add-dev-versions' 2013-05-31 17:38:37 +09:00
Yamashita Yuu
d94c1d2143 add jython-*-dev 2013-05-31 17:38:18 +09:00
Yamashita Yuu
3fd475e1d5 add stackless-*-dev 2013-05-31 17:16:35 +09:00
Yamashita Yuu
309a6cd65e *EXPERIMENTAL* add pypy-py3k-dev 2013-05-31 14:33:22 +09:00
Yamashita Yuu
924f6dc76d add ${PYPY_OPTS} to specify pypy build options 2013-05-31 14:28:32 +09:00
Yamashita Yuu
56a9a7cebf improve error message of pypy 2013-05-31 14:28:08 +09:00
Yamashita Yuu
b8cbb18f7b add pypy-1.[789]-dev 2013-05-31 13:45:37 +09:00
Yamashita Yuu
27caf0ef3d add pypy-1.[567] 2013-05-31 13:39:58 +09:00
Yamashita Yuu
b203ccbe74 verify pypy binary after installation 2013-05-31 13:00:48 +09:00
Yamashita Yuu
cb962d5a74 Merge branch 'pypy_builder' 2013-05-29 23:32:13 +09:00
Yamashita Yuu
539800cc3b add pypy-*-src to build and install pypy from source 2013-05-29 23:30:22 +09:00
Yamashita Yuu
b77ae3e0b5 build and install pypy from source 2013-05-29 23:26:50 +09:00
Yamashita Yuu
dfc3f9e13c Set $PYENV_VERSION for existing installation of 3.4
CPython 3.4.x requires "python3.4" to be executable during build
if it is in "$PATH".
2013-05-29 19:36:49 +09:00
Yamashita Yuu
f120551ef3 add pypy-2.0.1 and pypy-2.0.2 2013-05-29 15:05:43 +09:00
Yamashita Yuu
b03a4cde78 add build_package_verify_py3{0,1,2,3,4} 2013-05-27 19:37:24 +09:00
Yamashita Yuu
71b2081a75 update distribute version (0.6.40 -> 0.6.43) 2013-05-27 16:58:19 +09:00
Yamashita Yuu
5fbc3ae3d5 add ssl patch for 3.1.3 and 3.2 (#22) 2013-05-23 12:07:19 +09:00
Yamashita Yuu
1ce37e53c7 Merge branch 'ruby-build-v20130518' 2013-05-21 16:40:21 +09:00
Yamashita Yuu
9ae12a7c22 add CPython development versions (2.[67]-dev, 3.[1234]-dev) 2013-05-21 16:38:11 +09:00
Yamashita Yuu
b3deef5e80 update base version of ruby-build (v20130518) 2013-05-21 11:43:01 +09:00
Yamashita Yuu
28317ecb34 update readme 2013-05-19 02:34:57 +09:00
Yamashita Yuu
78efa7613d setup verification for 2.7.5, 3.2.5 and 3.3.2 2013-05-18 20:52:37 +09:00
Yamashita Yuu
0bf26d8f1d setup download mirror site (#18, #20) 2013-05-17 23:14:57 +09:00
Yamashita Yuu
ac70eb701c fix error messages 2013-05-17 19:36:23 +09:00
Yamashita Yuu
c834f241a8 check native modules (e.g. ssl, bz2) if they were built 2013-05-17 16:49:27 +09:00
Yamashita, Yuu
aa39b392a9 Merge pull request #17 from keitaoouchi/support_2.7.5_3.2.5_3.3.2
Support new versions(2.7.5, 3.2.5, 3.3.2).
2013-05-16 07:36:07 -07:00
keitaoouchi
907ddb614d Support new versions(2.7.4, 3.2.5, 3.3.2). 2013-05-16 23:24:21 +09:00
Yamashita Yuu
dd0e3feae3 add install_zip 2013-05-16 22:39:15 +09:00
Yamashita Yuu
c24207428c remove useless definition of PYENV_VERSION_PATH 2013-05-16 18:21:37 +09:00
Yamashita Yuu
8b23026d6c add PACKAGE_PATCH_STRIP to support optional strip number of patch 2013-05-16 18:19:10 +09:00
Yamashita Yuu
cc9b7aa7dd update distribute version (0.6.38 -> 0.6.40) 2013-05-15 19:47:44 +09:00
Yamashita Yuu
318a41d723 add i786 2013-05-10 21:26:55 +09:00
Yamashita Yuu
5a52177d15 add pypy-2.0 and remove beta versions 2013-05-10 21:15:40 +09:00
Yamashita Yuu
2e8c43215d preserve original file suffix in place of hardcoded ".tar" 2013-05-10 20:26:42 +09:00
Yamashita Yuu
45966deb49 fix pypy installation on x86_64 with glibc which is not strictly equal to 2.13 or 2.15. 2013-05-10 20:23:25 +09:00
Yamashita Yuu
7aa644da5c ignore cache directory 2013-05-10 19:08:14 +09:00
Yamashita Yuu
56379532a6 add comments for Jython about the version of distribute and pip (#15) 2013-05-10 18:31:48 +09:00
Yamashita Yuu
9bf0755c81 update default distribute version (0.6.36 -> 0.6.38) 2013-05-09 14:58:47 +09:00
Yamashita Yuu
f01d1d1064 move patches into ./share to fix the install.sh 2013-05-09 00:11:52 +09:00
Yamashita Yuu
e9b0ecf021 remove needless declaration of LDFLAGS.
removing this not breaks build on latest Debian sid.
2013-05-08 23:56:33 +09:00
Yamashita Yuu
cbc6f38774 fix build problem of ssl modulle of CPython 3.0.1 2013-05-08 20:09:54 +09:00
Yamashita Yuu
e220b76c3e fix build problem of ssl module with recent OpenSSL
http://bugs.python.org/issue12012
2013-05-08 19:52:09 +09:00
Yamashita Yuu
8d1bf96267 add workaround for incompatible behaviour of svnversion (#14) 2013-05-08 19:23:03 +09:00
Yamashita Yuu
e49922064d Merge branch 'automated-patching' 2013-05-08 18:38:53 +09:00
Yamashita Yuu
95882fce68 remove useless patches 2013-05-08 18:38:34 +09:00
Yamashita Yuu
cc20ab3392 find appropriate patch for package automatically 2013-05-08 18:35:30 +09:00
Yamashita Yuu
fe50ed29ea bundle patches into python-build repository 2013-05-08 17:49:09 +09:00
Yamashita Yuu
e9db2caace fix completion problem on zsh 2013-05-01 13:14:22 +09:00
Yamashita Yuu
2d55aea467 add pypy-2.0-beta2 2013-04-30 01:53:30 +09:00
Yamashita Yuu
521c2c3e06 add jython versions; jython-2.5.4-rc1 and jython-2.7-beta1 2013-04-30 01:46:28 +09:00
Yamashita Yuu
0bc8d8252e fix typo to verify jar's checksum 2013-04-30 01:20:12 +09:00
Yamashita Yuu
80f4022891 Merge branch 'issue15' 2013-04-29 13:08:23 +09:00
Yamashita Yuu
998af2a3ab revert pip version (1.3.1 -> 1.2.1) to avoid AttributeError on Jython. (#15)
AttributeError: 'module' object has no attribute 'O_NOFOLLOW'
2013-04-27 21:05:34 +09:00
Yamashita Yuu
3b820e8c0c revert distribute version (0.6.36 -> 0.6.32) due to the installation
problem with Jython 2.5.[01] (#15)
2013-04-27 20:54:45 +09:00
Yamashita Yuu
8bc19e28e0 update distribute version (0.6.34 -> 0.6.36) 2013-04-25 21:42:59 +09:00
Yamashita Yuu
0d0516ad05 update default pip version (1.2.1 -> 1.3.1) 2013-04-25 21:40:13 +09:00
Yamashita Yuu
6997026064 import recent changes from ruby-build 20130408 2013-04-19 19:26:11 +09:00
Yamashita Yuu
dd1b6502c6 add README for python-build.
was copied from [ruby-build](https://github.com/sstephenson/ruby-build).
2013-04-19 18:48:45 +09:00
Mislav Marohnić
060f141b21 test that IFS in hooks is correct
closes #379
2013-04-16 14:01:43 +02:00
Ian Yang
6ca591ab75 restore original IFS for hooks 2013-04-16 14:01:43 +02:00
Mislav Marohnić
bc1049f5ae improve versions tests by cd'ing into a clean slate 2013-04-16 12:52:42 +02:00
Mislav Marohnić
05568496c1 Merge branch 'test-coverage' for MAXIMUM COVERAGE 2013-04-08 23:17:03 +02:00
Mislav Marohnić
ab9ebb9d0d add tests for help and rbenv --version 2013-04-08 23:16:35 +02:00
Mislav Marohnić
ab197ef51e add tests for version commands 2013-04-08 23:16:35 +02:00
Mislav Marohnić
7fc5f46bbb undo assert_output_lines in tests
It was a dumb idea and it wasn't even implemented perfectly.
2013-04-08 23:16:35 +02:00
Mislav Marohnić
969af1567a add tests for rehash, whence, which 2013-04-08 23:02:30 +02:00
Yamashita, Yuu
d1013e82de Merge pull request #12 from f440/support_2.7.4_3.2.4_3.3.1
Support 2.7.4, 3.2.4, 3.3.1
2013-04-06 21:20:26 -07:00
f440
bb2d058167 Support 2.7.4, 3.2.4, 3.3.1 2013-04-07 12:40:12 +09:00
Mislav Marohnić
7a10b64cf7 better emulate ruby -S behavior in testing
Per https://github.com/ruby/ruby/blob/7d3db3c/ruby.c#L1383-1391
2013-04-02 02:48:27 +02:00
Mislav Marohnić
f6db678b20 un-indent shebang for test executables 2013-04-02 02:48:04 +02:00
Mislav Marohnić
97290b2442 simplify iterating through arglist 2013-04-02 02:41:28 +02:00
Mislav Marohnić
b8504ed2a9 saner assertions for multiline output 2013-04-02 00:27:27 +02:00
Alisdair Sullivan
497911d6c0 improve detection of completion support for commands
Enable JavasCript, Lua and Erlang scripts to provide completions
2013-04-01 16:39:51 +02:00
Mislav Marohnić
4d96d0a6c6 add tests for completions 2013-04-01 16:22:02 +02:00
Mislav Marohnić
9b58b6642e test completions for exec 2013-04-01 03:45:15 +02:00
Mislav Marohnić
45f651ab00 hack around the hack around bash echo 2013-04-01 03:12:15 +02:00
Mislav Marohnić
400fe31061 fix exec fails for invalid version 2013-04-01 03:01:37 +02:00
Mislav Marohnić
4b6ab0389b add tests for exec 2013-04-01 02:58:58 +02:00
Mislav Marohnić
baf7656d2f fix iterating through paths that have spaces in them
Fixes #344, #196
2013-04-01 01:04:19 +02:00
Yamashita, Yuu
6e58c43d8a Merge pull request #11 from draftcode/build-pydebug
Add an option to build a debug version of Python
2013-03-28 00:53:08 -07:00
draftcode
dce4eb636a Add a help string to describe the debug option 2013-03-28 16:41:07 +09:00
draftcode
c170255580 Preserve CONFIGURE_OPTS 2013-03-28 16:35:26 +09:00
draftcode
8bf0938e60 Add an option to build a debug version of Python 2013-03-28 12:04:58 +09:00
Sam Stephenson
382db59cd0 Merge pull request #367 from shoyan/master
replace tab with spaces
2013-03-23 08:47:10 -07:00
Shohei Yamasaki
2bbf49b2f5 replace tab with spaces 2013-03-23 22:37:25 +09:00
Mislav Marohnić
6a6ae8ae46 tests for rbenv-init 2013-03-20 13:43:57 +01:00
Tim Pope
03fa148e81 Don't duplicate shims in PATH 2013-03-20 13:16:02 +01:00
Mislav Marohnić
ea3203dbab fix resolving symlinks in rbenv-hooks 2013-03-08 14:35:46 -05:00
Yamashita, Yuu
aa831836e1 Merge pull request #10 from oza/patch-1
Update README.md
2013-03-07 22:29:10 -08:00
OZAWA Tsuyoshi
0eb1520707 Update README.md 2013-03-08 15:26:15 +09:00
Mislav Marohnić
a81ace2ccb add hook lookup tests 2013-03-07 23:55:02 -05:00
Mislav Marohnić
a7da06998e use C on Travis for even less overhead 2013-03-07 16:14:25 -05:00
Mislav Marohnić
5e5e3e0588 skip Ruby stuff on Travis 2013-03-07 16:09:02 -05:00
Mislav Marohnić
bc369fb1ab configure Travis 2013-03-07 16:05:34 -05:00
Mislav Marohnić
bb6bccb782 tests galore 2013-03-07 15:07:32 -05:00
Mislav Marohnić
1fe59e41ea error message when rehash fails on non-writable directory
Fixes #238
2013-03-07 00:13:50 -05:00
Yamashita Yuu
606346761f s/python-virtualenv/pyenv-virtualenv/g in README.md 2013-03-06 12:48:13 +09:00
Tim Pope
0d1f1d09f0 Fix multiple argument completion with zsh
This changes the zsh completion to omit the final, incomplete command
line argument when invoking rbenv completions, making it consistent with
the bash completion.  Since no built-in completion cares about the
argument list, this inconsistency only affected plugins.
2013-02-23 23:54:10 +01:00
Yamashita Yuu
48e1488bc9 remove duplicated LICENSE from python-build. 2013-02-23 19:07:45 +09:00
Yamashita Yuu
0259b6adfb update copyright year 2013-02-23 19:06:58 +09:00
YanhaoYang
13f36e0416 rbenv(): preserve multiline output of sh-* commands 2013-02-22 15:42:31 +01:00
Yamashita Yuu
dbb1fb5a06 release 0.2.0 2013-02-18 12:39:35 +09:00
Yamashita Yuu
755c00e67c fix broken installation scripts for Jython and some of CPython.
replaced deprecated method calls of `fetch_url` by `http get`.
2013-02-07 17:48:23 +09:00
Yamashita Yuu
ad900ba436 fix some differences between ruby-build (refs #8) 2013-02-07 17:32:10 +09:00
Yamashita Yuu
ea7dc5f1e1 fix inverted result of checking version existence (refs #7) 2013-02-07 16:50:20 +09:00
Yamashita Yuu
be53bb8951 update README 2013-02-06 22:08:16 +09:00
Yamashita Yuu
167ff2a198 s/Ruby/Python/g; s/RBENV/PYENV/g 2013-02-06 16:05:29 +09:00
Yamashita Yuu
ee3c9bef5e fix typo; s/vesions/versions/
also this will fix https://github.com/yyuu/python-virtualenv/issues/1
2013-02-01 12:46:57 +09:00
Yamashita Yuu
6d307c6e11 import recent changes from ruby-build:
* verify checksum of downloaded archives.
* add PYTHON_BUILD_MIRROR_URL to use mirror site.
  But we don't have CloudFront setup as of now :-(
* rbenv 0.4.x style help messages
2013-01-31 13:27:39 +09:00
Yamashita Yuu
a0705cb86e fix shell syntax error. add missing `then'. 2013-01-28 12:53:18 +09:00
Sam Stephenson
e3f72ebae2 Guard against exported CDPATH (fixes #316) 2013-01-25 12:02:11 -06:00
Sam Stephenson
98f45695db Suppress shell warnings when hashing is disabled by set +h 2013-01-25 11:50:37 -06:00
Sam Stephenson
3cb95b4d2d Add rbenv --debug <command> as a shortcut for setting RBENV_DEBUG=1 2013-01-23 19:07:37 -06:00
Sam Stephenson
892aea138e Export PS4 when RBENV_DEBUG is set for more informative debug output 2013-01-23 19:07:37 -06:00
Yamashita Yuu
fca31c4307 import trivial changes from rbenv 0.4.0 2013-01-18 19:10:35 +09:00
Yamashita Yuu
684f7b7f21 add support for .python-version file to store local python version 2013-01-18 19:10:30 +09:00
Yamashita Yuu
da06998457 import rbenv-help from rbenv 0.4.0 2013-01-18 19:09:56 +09:00
Yamashita Yuu
f466679bd1 import pyenv---version from rbenv 2013-01-17 23:17:41 +09:00
Yamashita Yuu
4a217a0cd1 update distribute to 0.6.34 2013-01-11 13:41:40 +09:00
Sam Stephenson
045f6c1bce Merge pull request #314 from jalcine/feature/ignoring-thy-sources
Ignoring Your Sources
2013-01-09 15:36:22 -08:00
Jacky Alciné
1d4261a997 Added 'sources' to the Git ignores. 2013-01-09 16:45:08 -05:00
Sam Stephenson
da80bced53 Merge pull request #310 from leocassarani/rbenv-help-mawk
Fix incorrect formatting of rbenv-help output under MAWK
2013-01-05 13:51:57 -08:00
Leo Cassarani
1d687ac734 Fix incorrect formatting of rbenv-help output under MAWK
In systems that use the MAWK interpreter (the default AWK installed with
Ubuntu), the output of `rbenv help <command>` would have no line breaks.
The issue is fixed by changing `gsub` to `sub` in the snippet of awk
commands that are used to extract documentation comments.

I suspect the bug is something to do with the way the '^' and '$'
characters are interpreted by different AWK interpreters (per-line vs
per-string anchors).

If I understand correctly, the purpose of trim() is to remove all line
breaks from the start and end of each sections of a command's
documentation, in which case `sub` should serve the same purpose.
2013-01-05 16:55:19 +00:00
Ryan Bigg
bef7a12964 Merge pull request #308 from eddorre/master
Small update to the README.
2013-01-04 15:17:13 -08:00
Carlos Rodriguez
14ff078b85 Removed double 'at' from README 2013-01-04 15:14:36 -08:00
Mislav Marohnić
cd940bd797 typo in docs 2013-01-04 23:26:01 +01:00
Mislav Marohnić
093809eac6 spellcheck 2013-01-04 23:17:52 +01:00
Sam Stephenson
c56f72794e Fix ruby-local-exec wiki page link in the changelog 2013-01-04 12:40:20 -06:00
Yamashita Yuu
5b14236bac fix "system" handling 2012-12-19 23:58:39 +09:00
Yamashita Yuu
a16355fe33 fix wrong link to the README in the help message 2012-12-14 18:45:28 +09:00
Yamashita Yuu
c9575d7cb0 update distribute and pip versions
* distribute (0.6.28 -> 0.6.32)
* pip (1.1 -> 1.2.1)
2012-12-11 12:19:56 +09:00
Yamashita Yuu
252003f18e add pypy-2.0-beta1 2012-12-11 12:13:18 +09:00
Yamashita Yuu
7509b9fadf update feature list in README 2012-11-06 13:17:04 +09:00
Yamashita Yuu
f878896a77 ignore non files 2012-10-23 17:55:55 +09:00
Yamashita Yuu
d09af20897 0.1.3git 2012-10-23 15:25:18 +09:00
Yamashita Yuu
b520475b22 release 0.1.2 2012-10-23 15:24:41 +09:00
Yamashita Yuu
ffa2505450 add install script 2012-10-23 15:23:48 +09:00
Yamashita Yuu
d73e945329 "rbx-1.2.4" is a variant of rubies, not a python 2012-10-19 22:14:24 +09:00
Yamashita Yuu
779aacbf07 I am not Sam. 2012-10-19 22:12:31 +09:00
Yamashita Yuu
2ed400bfc6 use default CC to build CPython and Stackless. require_gcc was
imported from ruby-build and is for rubies, not for pythons.
2012-10-16 16:07:19 +09:00
Yamashita Yuu
e8ad78f837 add pyenv push and pyenv pop to manage version stack 2012-10-03 12:19:42 +09:00
Yamashita Yuu
aede700619 update README 2012-10-03 11:31:10 +09:00
Yamashita Yuu
ffa5fb0ea0 add CPython 3.3.0 release 2012-10-02 16:30:59 +09:00
Yamashita Yuu
42079cf3fb fix typo in README 2012-09-28 20:17:26 +09:00
Yamashita Yuu
d14eda2c1a ignore plugins other than python-build 2012-09-27 13:00:07 +09:00
Yamashita Yuu
579d44203f add 3.3.0rc2 and 3.3.0rc3 2012-09-27 12:50:42 +09:00
Yamashita, Yuu
a7695aa5d3 Merge pull request #1 from f440/master
Fix undiscovered function problem
2012-09-09 05:55:25 -07:00
FUSE Yoshio
f3ae8fd904 fix typo in function name 2012-09-09 21:45:44 +09:00
Yamashita Yuu
4174749b24 replace tr by shell's IFS 2012-09-07 20:10:10 +09:00
Yamashita Yuu
e89ae3a4a9 show all enabled versions (maybe multiple) in pyenv versions 2012-09-07 19:56:55 +09:00
Yamashita Yuu
13122ca9bf fixed to read multiple versions from PYENV_VERSION environment variable 2012-09-07 19:16:42 +09:00
Yamashita Yuu
34a4a532b2 0.1.2git 2012-09-03 19:40:49 +09:00
Yamashita Yuu
d08fcc522e release 0.1.1 2012-09-03 19:40:30 +09:00
Yamashita Yuu
f0ff5a416e added 3.3.0rc1 2012-09-03 19:36:04 +09:00
Yamashita Yuu
e66ca60340 updated screenshot 2012-08-31 21:05:18 +09:00
Yamashita Yuu
71e5cd962e updated README 2012-08-31 20:59:24 +09:00
Yamashita Yuu
da659739d2 fixed pyenv shell. we cannot carry out bash array via envvars. 2012-08-31 20:12:26 +09:00
Yamashita Yuu
dff57ae35d s/PYENV_VERSIONS/PYENV_VERSION/ for backward compatibility. 2012-08-31 19:39:29 +09:00
Yamashita Yuu
2856f81bb9 added more pythons 2012-08-31 19:11:29 +09:00
Yamashita Yuu
5224641f1a added CPython 2.5.6 2012-08-31 17:20:31 +09:00
Yamashita Yuu
a4c02082cb pypy installation doesn't require gcc 2012-08-31 17:18:47 +09:00
Yamashita Yuu
80c0dce7b2 Merge branch 'version-stack' 2012-08-31 16:50:57 +09:00
Yamashita Yuu
de25a84dc2 fixed build error on Mac OS X 2012-08-31 16:50:24 +09:00
Yamashita Yuu
8187bc84e3 search commands from python version stack.
users can use multiple python versions at once.
2012-08-31 16:09:46 +09:00
Yamashita Yuu
880ea61dd8 0.1.1git 2012-08-31 15:59:36 +09:00
Yamashita Yuu
7953f573c6 modify ruby-build for Python and import into pyenv as default plugin. 2012-08-31 15:55:21 +09:00
Yamashita Yuu
2457419b4a created new project.
modified rbenv source for Python and renamed to pyenv.
2012-08-31 15:30:20 +09:00
458 changed files with 68904 additions and 1336 deletions

7
.gitignore vendored
View File

@@ -1,4 +1,9 @@
/plugins
/shims
/version
/versions
/sources
/cache
/libexec/*.dylib
/src/Makefile
/src/*.o
/bats/

7
.travis.yml Normal file
View File

@@ -0,0 +1,7 @@
sudo: false
install: git clone --depth 1 https://github.com/sstephenson/bats.git
script: make test
language: c
env:
- PYENV_NATIVE_EXT=
- PYENV_NATIVE_EXT=1

366
CHANGELOG.md Normal file
View File

@@ -0,0 +1,366 @@
## Version History
### 20151210
+ pyenv: Add a default hook for Anaconda to look for original `$PATH` (#491)
+ pyenv: Skip virtualenv aliases on `pyenv versions --skip-aliases` (yyuu/pyenv-virtualenv#126)
+ python-build: Add CPython 2.7.11, 3.5.1 (#494, #498)
+ python-build: Update OpenSSL to 1.0.1q (#496)
+ python-build: Adding SSL patch to build 2.7.3 on Debian (#495)
### 20151124
* pyenv: Import recent changes from rbenv 5fb9c84e14c8123b2591d22e248f045c7f8d8a2c
* pyenv: List anaconda-style virtual environments as a version in pyenv (#471)
* python-build: Import recent changes from ruby-build v20151028
* python-build: Add PyPy 4.0.1 (#489)
* python-build: Add `miniconda*-3.18.3` (#477)
* python-build: Add CPython 2.7.11 RC1
### 20151105
* python-build: Add anaconda2-2.4.0 and anacondaa3-2.4.0
* python-biuld: Add Portable PyPy 4.0 (#472)
### 20151103
* python-build: Add PyPy 4.0.0 (#463)
* python-build: Add Jython 2.7.1b2
* python-build: Add warning about setuptools issues on CPython 3.0.1 on OS X (#456)
### 20151006
* pyenv: Different behaviour when invoking .py script through symlink (#379, #404)
* pyenv: Enabled Gitter on the project (#436, #444)
* python-build: Add Jython 2.7.1b1
* python-build: Install OpenSSL on OS X if no proper versionn is available (#429)
### 20150913
* python-build: Add CPython 3.5.0
* python-build: Remove CPython 3.5.0 release candidates
* python-build: Fixed anaconda3 repo's paths (#439)
* python-build: Add miniconda-3.16.0 and miniconda3-3.16.0 (#435)
### 20150901
* python-build: Add CPython 3.5.0 release candidates; 3.5.0rc1 and 3.5.0rc2
* python-build: Disabled `_FORTITY_SOURCE` to fix CPython >= 2.4, <= 2.4.3 builds (#422)
* python-build: Removed CPython 3.5.0 betas
* python-build: Add miniconda-3.10.1 and miniconda3-3.10.1 (#414)
* python-build: Add PyPy 2.6.1 (#433)
* python-build: Add PyPy-STM 2.3 and 2.5.1 (#428)
* python-build: Ignore user's site-packages on ensurepip/get-pip (#411)
* pyenv: Import recent changes from ruby-build v20150818
#### 20150719
* python-build: Add CPython `3.6-dev` (#413)
* python-build: Add Anaconda/Anaconda3 2.3.0
* python-build: Fix download URL of portable PyPy 2.6 (fixes #389)
* python-build: Use custom `MACOSX_DEPLOYMENT_TARGET` if defined (#312)
* python-build: Use original CPython repository instead of mirror at bitbucket.org as the source of `*-dev` versions (#409)
* python-build: Pin pip version to 1.5.6 for python 3.1.5 (#351)
#### 20150601
* python-build: Add PyPy 2.6.0
* python-build: Add PyPy 2.5.1 portable
* python-build: Add CPython 3.5.0 beta releases; 3.5.0b1 and 3.5.0b2
* python-build: Removed CPython 3.5.0 alpha releases
* python-build: Fix inverted condition for `--altinstall` of ensurepip (#255)
* python-build: Skip installing `setuptools` by `ez_setup.py` explicitly (fixes #381)
* python-build: Import changes from ruby-build v20150519
#### 20150524
* pyenv: Improve `pyenv version`, if there is one missing (#290)
* pyenv: Improve pip-rehash to handle versions in command, like `pip2` and `pip3.4` (#368)
* python-build: Add CPython release; 2.7.10 (#380)
* python-build: Add Miniconda/Miniconda3 3.9.1 and Anaconda/Anaconda3 2.2.0 (#375, #376)
#### 20150504
* python-build: Add Jython 2.7.0
* python-build: Add CPython alpha release; 3.5.0a4
* python-build: Add CPython 3.1, 3.1.1, and 3.1.2
* python-build: Fix pip version to 1.5.6 for CPython 3.1.x (#351)
#### 20150326
* python-build: Add Portable PyPy binaries from https://github.com/squeaky-pl/portable-pypy (#329)
* python-build: Add CPython alpha release; 3.5.0a2 (#328)
* python-build: Add pypy-2.5.1 (fixes #338)
* pyenv: Import recent changes from rbenv 4d72eefffc548081f6eee2e54d3b9116b9f9ee8e
#### 20150226
* python-build: Add CPython release; 3.4.3 (#323)
* python-build: Add CPython alpha release; 3.5.0a1 (#324)
* python-build: Add Miniconda/Miniconda3 3.8.3 (#318)
#### 20150204
* python-build: Add PyPy 2.5.0 release (#311)
* python-build: Add note about `--enable-shared` and RPATH (#217)
* python-build: Fix regression of `PYTHON_MAKE_INSTALL_TARGET` and add test (#255)
* python-build: Symlink `pythonX.Y-config` to `python-config` if `python-config` is missing (#296)
* python-build: Latest `pip` can't be installed into `3.0.1` (#309)
#### 20150124
* python-build: Import recent changes from ruby-build v20150112
* python-build: Prevent adding `/Library/Python/X.X/site-packages` to `sys.path` whtn `--enable-framework` is enabled on OS X. Thanks @s1341 (#292)
* python-build: Add new IronPython release; 2.7.5
#### 20141211
* pyenv: Add bulit-in `pip-rehash` feature. You don't need to install [pyenv-pip-rehash](https://github.com/yyuu/pyenv-pip-rehash) anymore.
* python-build: Add new CPython release; 2.7.9 (#284)
* python-build: Add new PyPy releases; pypy3-2.4.0, pypy3-2.4.0-src (#277)
* python-build: Add build definitions of PyPy nightly build
#### 20141127
* python-build: Add new CPython release candidates; 2.7.9rc1 (#276)
#### 20141118
* python-build: Fix broken `setup_builtin_patches` (#270)
* python-build: Add a patch to allow building 2.6.9 on OS X 10.9 with `--enable-framework` (#269, #271)
#### 20141106
* pyenv: Optimize pyenv-which. Thanks to @blueyed (#129)
* python-build: Add Miniconda/Miniconda3 3.7.0 and Anaconda/Anaconda3 2.1.0 (#260)
* python-build: Use HTTPS for mirror download URLs (#262)
* python-build: Set `rpath` for `--shared` build of PyPy (#244)
* python-build: Support `make altinstall` when building CPython/Stackless (#255)
* python-build: Import recent changes from ruby-build v20141028 (#265)
#### 20141012
* python-build: Add new CPython releases; 3.2.6, 3.3.6 (#253)
#### 20141011
* python-build: Fix build error of Stackless 3.3.5 on OS X (#250)
* python-build: Add new Stackless releases; stackless-2.7.7, stackless-2.7.8, stackless-3.4.1 (#252)
#### 20141008
* python-build: Add new CPython release; 3.4.2 (#251)
* python-build: Add new CPython release candidates; 3.2.6rc1, 3.3.6rc1 (#248)
#### 20140924
* pyenv: Fix an unintended behavior when user does not have write permission on `$PYENV_ROOT` (#230)
* pyenv: Fix a zsh completion issue (#232)
* python-build: Add new PyPy release; pypy-2.4.0, pypy-2.4.0-src (#241)
#### 20140825
* pyenv: Fix zsh completion with multiple words (#215)
* python-build: Display the package name of `hg` as `mercurial` in message (#212)
* python-build: Unset `PIP_REQUIRE_VENV` during build (#216)
* python-build: Set `MACOSX_DEPLOYMENT_TARGET` from the product version of OS X (#219, #220)
* python-build: Add new Jython release; jython2.7-beta3 (#223)
#### 20140705
* python-build: Add new CPython release; 2.7.8 (#201)
* python-build: Support `SETUPTOOLS_VERSION` and `PIP_VERSION` to allow installing specific version of setuptools/pip (#202)
#### 20140628
* python-build: Add new Anaconda releases; anaconda-2.0.1, anaconda3-2.0.1 (#195)
* python-build: Add new PyPy3 release; pypy3-2.3.1 (#198)
* python-build: Add ancient CPython releases; 2.1.3, 2.2.3, 2.3.7 (#199)
* python-build: Use `ez_setup.py` and `get-pip.py` instead of installing them from tarballs (#194)
* python-build: Add support for command-line options to `ez_setup.py` and `get-pip.py` (#200)
#### 20140615
* python-build: Update default setuptools version (4.0.1 -> 5.0) (#190)
#### 20140614
* pyenv: Change versioning schema (`v0.4.0-YYYYMMDD` -> `vYYYYMMDD`)
* python-build: Add new PyPy release; pypy-2.3.1, pypy-2.3.1-src
* python-build: Create symlinks for executables with version suffix (#182)
* python-build: Use SHA2 as default digest algorithm to verify downloaded archives
* python-build: Update default setuptools version (4.0 -> 4.0.1) (#183)
* python-build: Import recent changes from ruby-build v20140524 (#184)
#### 0.4.0-20140602
* python-build: Add new Anaconda/Anaconda3 releases; anaconda-2.0.0, anaconda3-2.0.0 (#179)
* python-build: Add new CPython release; 2.7.7 (#180)
* python-build: Update default setuptools version (3.6 -> 4.0) (#181)
* python-build: Respect environment variables of `CPPFLAGS` and `LDFLAGS` (#168)
* python-build: Support for xz-compressed Python tarballs (#177)
#### 0.4.0-20140520
* python-build: Add new CPython release; 3.4.1 (#170, #171)
* python-build: Update default pip version (1.5.5 -> 1.5.6) (#169)
#### 0.4.0-20140516
* pyenv: Prefer gawk over awk if both are available.
* python-build: Add new PyPy release; pypy-2.3, pypy-2.3-src (#162)
* python-build: Add new Anaconda release; anaconda-1.9.2 (#155)
* python-build: Add new Miniconda releases; miniconda-3.3.0, minoconda-3.4.2, miniconda3-3.3.0, miniconda3-3.4.2
* python-build: Add new Stackless releases; stackless-2.7.3, stackless-2.7.4, stackless-2.7.5, stackless-2.7.6, stackless-3.2.5, stackless-3.3.5 (#164)
* python-build: Add IronPython versions (setuptools and pip will work); ironpython-2.7.4, ironpython-dev
* python-build: Add new Jython beta release; jython-2.7-beta2
* python-build: Update default setuptools version (3.4.1 -> 3.6)
* python-build: Update default pip version (1.5.4 -> 1.5.5)
* python-build: Update GNU Readline (6.2 -> 6.3)
* python-build: Import recent changes from ruby-build v20140420
#### 0.4.0-20140404
* pyenv: Reads only the first word from version file. This is as same behavior as rbenv.
* python-build: Fix build of Tkinter with Tcl/Tk 8.6 (#131)
* python-build: Fix build problem with Readline 6.3 (#126, #131, #149, #152)
* python-build: Do not exit with errors even if some of modules are absent (#131)
* python-build: MacOSX was mispelled as MaxOSX in `anaconda_architecture` (#136)
* python-build: Use default `cc` as the C Compiler to build CPython (#148, #150)
* python-build: Display value from `pypy_architecture` and `anaconda_architecture` on errors (yyuu/pyenv-virtualenv#18)
* python-build: Remove old development version; 2.6-dev
* python-build: Update default setuptools version (3.3 -> 3.4.1)
#### 0.4.0-20140317
* python-build: Add new CPython releases; 3.4.0 (#133)
* python-build: Add new Anaconda releases; anaconda-1.9.0, anaconda-1.9.1
* python-build: Add new Miniconda releases; miniconda-3.0.4, miniconda-3.0.5, miniconda3-3.0.4, miniconda3-3.0.5
* python-build: Update default setuptools version (3.1 -> 3.3)
#### 0.4.0-20140311
* python-build: Add new CPython releases; 3.3.5 (#127)
* python-build: Add new CPython release candidates; 3.4.0rc1, 3.4.0rc2, 3.4.0rc3
* python-build: Update default setuptools version (2.2 -> 3.1)
* python-build: Update default pip version (1.5.2 -> 1.5.4)
* python-build: Import recent changes from ruby-build v20140225
#### 0.4.0-20140211
* python-build: Add new CPython release candidates; 3.3.4, 3.4.0b3
* python-build: Add [Anaconda](https://store.continuum.io/cshop/anaconda/) and [Miniconda](http://repo.continuum.io/miniconda/) binary distributions
* python-build: Display error if the wget does not support Server Name Indication (SNI) to avoid SSL verification error when downloading from https://pypi.python.org. (#60)
* python-build: Update default setuptools version (2.1 -> 2.2)
* python-build: Update default pip version (1.5.1 -> 1.5.2)
* python-build: Import recent changes from ruby-build v20140204
#### 0.4.0-20140123
* pyenv: Always append the directory at the top of the `$PATH` to return proper value for `sys.executable` (#98)
* pyenv: Unset `GREP_OPTIONS` to avoid issues of conflicting options (#101)
* python-build: Install `pip` with using `ensurepip` if available
* python-build: Add support for framework installation (`--enable-framework`) of CPython (#55, #99)
* python-build: Import recent changes from ruby-build v20140110.1
* python-build: Import `bats` tests from ruby-build v20140110.1
#### 0.4.0-20140110.1
* python-build: Fix build error of CPython 2.x on the platform where the `gcc` is llvm-gcc.
#### 0.4.0-20140110
* pyenv: Reliably detect parent shell in `pyenv init` (#93)
* pyenv: Import recent changes from rbenv 0.4.0
* pyenv: Import `bats` tests from rbenv 0.4.0
* python-build: Add new CPython releases candidates; 3.4.0b2
* python-build: Add ruby-build style patching feature (#91)
* python-build: Set `RPATH` if `--enable-shared` was given (#65, #66, 82)
* python-build: Update default setuptools version (2.0 -> 2.1)
* python-build: Update default pip version (1.4.1 -> 1.5)
* python-build: Activate friendly CPython during build if the one is not activated (8fa6b4a1847851919ad7857c6c42ed809a4d277b)
* python-build: Fix broken install.sh
* python-build: Import recent changes from ruby-build v20131225.1
* version-ext-compat: Removed from default plugin. Please use [pyenv-version-ext](https://github.com/yyuu/pyenv-version-ext) instead.
#### 0.4.0-20131217
* python-build: Fix broken build of CPython 3.3+ on Darwin
* python-build: Not build GNU Readline uselessly on Darwin
#### 0.4.0-20131216
* python-build: Add new CPython releases; 3.3.3 (#80)
* python-build: Add new CPython releases candidates; 3.4.0b1
* python-build: Add new PyPy releases; pypy-2.2.1, pypy-2.2.1-src
* python-build: Update default setuptools version (1.3.2 -> 2.0)
* python-build: Imported recent changes from ruby-build v20131211
* pyenv: Fix pyenv-prefix to trim "/bin" in `pyenv prefix system` (#88)
#### 0.4.0-20131116
* python-build: Add new CPython releases; 2.6.9, 2.7.6 (#76)
* python-build: Add new CPython release candidates; 3.3.3-rc1, 3.3.3-rc2
* python-build: Add new PyPy releases; pypy-2.2, pypy-2.2-src (#77)
* python-build: Update default setuptools version (1.1.6 -> 1.3.2)
* python-build: Imported recent changes from ruby-build v20131030
#### 0.4.0-20131023
* pyenv: Improved [fish shell](http://fishshell.com/) support
* python-build: Add new PyPy releases; pypy-2.1, pypy-2.1-src, pypy3-2.1-beta1, pypy3-2.1-beta1-src
* python-build: Add ancient versions; 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5
* python-build: Add alpha releases; 3.4.0a2, 3.4.0a3, 3.4.0a4
* python-build: Update default pip version (1.4 -> 1.4.1)
* python-build: Update default setuptools version (0.9.7 -> 1.1.6)
#### 0.4.0-20130726
* pyenv: Fix minor issue of variable scope in `pyenv versions`
* python-build: Update base version to ruby-build v20130628
* python-build: Use brew managed OpenSSL and GNU Readline if they are available
* python-build: Fix build of CPython 3.3+ on OS X (#29)
* python-build: Fix build of native modules of CPython 2.5 on OS X (#33)
* python-build: Fix build of CPython 2.6+ on openSUSE (#36)
* python-build: Add ancient versions; 2.4.2 and 2.4.6. The build might be broken. (#37)
* python-build: Update default pip version (1.3.1 -> 1.4)
* python-build: Update default setuptools version (0.7.2 -> 0.9.7)
#### 0.4.0-20130613
* pyenv: Changed versioning schema. There are two parts; the former is the base rbenv version, and the latter is the date of release.
* python-build: Add `--debug` option to build CPython with debug symbols. (#11)
* python-build: Add new CPython versions: 2.7.4, 2.7.5, 3.2.4, 3.2.5, 3.3.1, 3.3.2 (#12, #17)
* python-build: Add `svnversion` patch for old CPython versions (#14)
* python-build: Enable mirror by default for faster download (#20)
* python-build: Add `OPENSSL_NO_SSL2` patch for old CPython versions (#22)
* python-build: Install GNU Readline on Darwin if the system one is broken (#23)
* python-build: Bundle patches in `${PYTHON_BUILD_ROOT}/share/python-build/patches` and improve patching mechanism (`apply_patches`).
* python-build: Verify native extensions after building. (`build_package_verify_py*`)
* python-build: Add `install_hg` to install package from Mercurial repository
* python-build: Support building Jython and PyPy.
* python-build: Add new CPython development versions: 2.6-dev, 2.7-dev, 3.1-dev, 3.2-dev, 3.3-dev, 3.4-dev
* python-build: Add new Jython development versions: jython-2.5.4-rc1, jython-2.5-dev, jython-2.7-beta1, jython-dev
* python-build: Add new PyPy versions: pypy-1.5{,-src}, pypy-1.6, pypy-1.7, pypy-2.0{,-src}, pypy-2.0.1{,-src}, pypy-2.0.2{,-src}
* python-build: Add new PyPy development versions: pypy-1.7-dev, pypy-1.8-dev, pypy-1.9-dev, pypy-2.0-dev, pypy-dev, pypy-py3k-dev
* python-build: Add new Stackless development versions: stackless-2.7-dev, stackless-3.2-dev, stackless-3.3-dev, stackless-dev
* python-build: Update default pip version (1.2.1 -> 1.3.1)
* python-build: Update default setuptools version (0.6.34 (distribute) -> 0.7.2 ([new setuptools](https://bitbucket.org/pypa/setuptools)))
#### 0.2.0 (February 18, 2013)
* Import changes from rbenv 0.4.0.
#### 0.1.2 (October 23, 2012)
* Add push/pop for version stack management.
* Support multiple versions via environment variable.
* Now GCC is not a requirement to build CPython and Stackless.
#### 0.1.1 (September 3, 2012)
* Support multiple versions of Python at a time.
#### 0.1.0 (August 31, 2012)
* Initial public release.

286
COMMANDS.md Normal file
View File

@@ -0,0 +1,286 @@
# Command Reference
Like `git`, the `pyenv` command delegates to subcommands based on its
first argument.
The most common subcommands are:
* [`pyenv commands`](#pyenv-commands)
* [`pyenv local`](#pyenv-local)
* [`pyenv global`](#pyenv-global)
* [`pyenv shell`](#pyenv-shell)
* [`pyenv install`](#pyenv-install)
* [`pyenv uninstall`](#pyenv-uninstall)
* [`pyenv rehash`](#pyenv-rehash)
* [`pyenv version`](#pyenv-version)
* [`pyenv versions`](#pyenv-versions)
* [`pyenv which`](#pyenv-which)
* [`pyenv whence`](#pyenv-whence)
## `pyenv commands`
Lists all available pyenv commands.
## `pyenv local`
Sets a local application-specific Python version by writing the version
name to a `.python-version` file in the current directory. This version
overrides the global version, and can be overridden itself by setting
the `PYENV_VERSION` environment variable or with the `pyenv shell`
command.
$ pyenv local 2.7.6
When run without a version number, `pyenv local` reports the currently
configured local version. You can also unset the local version:
$ pyenv local --unset
Previous versions of pyenv stored local version specifications in a
file named `.pyenv-version`. For backwards compatibility, pyenv will
read a local version specified in an `.pyenv-version` file, but a
`.python-version` file in the same directory will take precedence.
### `pyenv local` (advanced)
You can specify multiple versions as local Python at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv local 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv local 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/path/to/project/.python-version)
* 3.3.3 (set by /Users/yyuu/path/to/project/.python-version)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
## `pyenv global`
Sets the global version of Python to be used in all shells by writing
the version name to the `~/.pyenv/version` file. This version can be
overridden by an application-specific `.python-version` file, or by
setting the `PYENV_VERSION` environment variable.
$ pyenv global 2.7.6
The special version name `system` tells pyenv to use the system Python
(detected by searching your `$PATH`).
When run without a version number, `pyenv global` reports the
currently configured global version.
### `pyenv global` (advanced)
You can specify multiple versions as global Python at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv global 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv global 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by /Users/yyuu/.pyenv/version)
* 3.3.3 (set by /Users/yyuu/.pyenv/version)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
## `pyenv shell`
Sets a shell-specific Python version by setting the `PYENV_VERSION`
environment variable in your shell. This version overrides
application-specific versions and the global version.
$ pyenv shell pypy-2.2.1
When run without a version number, `pyenv shell` reports the current
value of `PYENV_VERSION`. You can also unset the shell version:
$ pyenv shell --unset
Note that you'll need pyenv's shell integration enabled (step 3 of
the installation instructions) in order to use this command. If you
prefer not to use shell integration, you may simply set the
`PYENV_VERSION` variable yourself:
$ export PYENV_VERSION=pypy-2.2.1
### `pyenv shell` (advanced)
You can specify multiple versions via `PYENV_VERSION` at once.
Let's say if you have two versions of 2.7.6 and 3.3.3. If you prefer 2.7.6 over 3.3.3,
$ pyenv shell 2.7.6 3.3.3
$ pyenv versions
system
* 2.7.6 (set by PYENV_VERSION environment variable)
* 3.3.3 (set by PYENV_VERSION environment variable)
$ python --version
Python 2.7.6
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
or, if you prefer 3.3.3 over 2.7.6,
$ pyenv shell 3.3.3 2.7.6
$ pyenv versions
system
* 2.7.6 (set by PYENV_VERSION environment variable)
* 3.3.3 (set by PYENV_VERSION environment variable)
venv27
$ python --version
Python 3.3.3
$ python2.7 --version
Python 2.7.6
$ python3.3 --version
Python 3.3.3
## `pyenv install`
Install a Python version (using `python-build`).
Usage: pyenv install [-f] [-kvp] <version>
pyenv install [-f] [-kvp] <definition-file>
pyenv install -l|--list
-l/--list List all available versions
-f/--force Install even if the version appears to be installed already
python-build options:
-k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
(defaults to $PYENV_ROOT/sources)
-v/--verbose Verbose mode: print compilation status to stdout
-p/--patch Apply a patch from stdin before building
-g/--debug Build a debug version
## `pyenv uninstall`
Uninstall a specific Python version.
Usage: pyenv uninstall [-f|--force] <version>
-f Attempt to remove the specified version without prompting
for confirmation. If the version does not exist, do not
display an error message.
## `pyenv rehash`
Installs shims for all Python binaries known to pyenv (i.e.,
`~/.pyenv/versions/*/bin/*`). Run this command after you install a new
version of Python, or install a package that provides binaries.
$ pyenv rehash
## `pyenv version`
Displays the currently active Python version, along with information on
how it was set.
$ pyenv version
2.7.6 (set by /home/yyuu/.pyenv/version)
## `pyenv versions`
Lists all Python versions known to pyenv, and shows an asterisk next to
the currently active version.
$ pyenv versions
2.5.6
2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
3.3.3
jython-2.5.3
pypy-2.2.1
## `pyenv which`
Displays the full path to the executable that pyenv will invoke when
you run the given command.
$ pyenv which python3.3
/home/yyuu/.pyenv/versions/3.3.3/bin/python3.3
## `pyenv whence`
Lists all Python versions with the given command installed.
$ pyenv whence 2to3
2.6.8
2.7.6
3.3.3
## `pyenv install`
Part of [Python-build](https://github.com/yyuu/pyenv/tree/master/plugins/python-build), this installs versions of python
$ pyenv install 2.7.6
$ pyenv install 2.6.8
$ pyenv versions
system
2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
## `pyenv install --list`
List available remote versions of Python, including Anaconda, Jython, pypy, and stackless
$ pyenv install --list

View File

@@ -1,3 +1,4 @@
Copyright (c) 2013 Yamashita, Yuu
Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining

12
Makefile Normal file
View File

@@ -0,0 +1,12 @@
.PHONY: test
# Do not pass in user flags to build tests.
unexport PYTHON_CFLAGS
unexport PYTHON_CONFIGURE_OPTS
test: bats
PATH="./bats/bin:$$PATH" test/run
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test
bats:
git clone https://github.com/sstephenson/bats.git

679
README.md
View File

@@ -1,72 +1,76 @@
# Groom your apps Ruby environment with rbenv.
# Simple Python Version Management: pyenv
Use rbenv to pick a Ruby version for your application and guarantee
that your development environment matches production. Put rbenv to work
with [Bundler](http://gembundler.com/) for painless Ruby upgrades and
bulletproof deployments.
[![Join the chat at https://gitter.im/yyuu/pyenv](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/yyuu/pyenv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
**Powerful in development.** Specify your app's Ruby version once,
in a single file. Keep all your teammates on the same page. No
headaches running apps on different versions of Ruby. Just Works™
from the command line and with app servers like [Pow](http://pow.cx).
Override the Ruby version anytime: just set an environment variable.
[![Build Status](https://travis-ci.org/yyuu/pyenv.svg?branch=master)](https://travis-ci.org/yyuu/pyenv)
**Rock-solid in production.** Your application's executables are its
interface with ops. With rbenv and [Bundler
binstubs](https://github.com/sstephenson/rbenv/wiki/Understanding-binstubs)
you'll never again need to `cd` in a cron job or Chef recipe to
ensure you've selected the right runtime. The Ruby version
dependency lives in one place—your app—so upgrades and rollbacks are
atomic, even when you switch versions.
pyenv lets you easily switch between multiple versions of Python. It's
simple, unobtrusive, and follows the UNIX tradition of single-purpose
tools that do one thing well.
**One thing well.** rbenv is concerned solely with switching Ruby
versions. It's simple and predictable. A rich plugin ecosystem lets
you tailor it to suit your needs. Compile your own Ruby versions, or
use the [ruby-build](https://github.com/sstephenson/ruby-build)
plugin to automate the process. Specify per-application environment
variables with [rbenv-vars](https://github.com/sstephenson/rbenv-vars).
See more [plugins on the
wiki](https://github.com/sstephenson/rbenv/wiki/Plugins).
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" />
### pyenv _does..._
* Let you **change the global Python version** on a per-user basis.
* Provide support for **per-project Python versions**.
* Allow you to **override the Python version** with an environment
variable.
* Search commands from **multiple versions of Python at a time**.
This may be helpful to test across Python versions with [tox](https://pypi.python.org/pypi/tox).
### In contrast with pythonbrew and pythonz, pyenv _does not..._
* **Depend on Python itself.** pyenv was made from pure shell scripts.
There is no bootstrap problem of Python.
* **Need to be loaded into your shell.** Instead, pyenv's shim
approach works by adding a directory to your `$PATH`.
* **Manage virtualenv.** Of course, you can create [virtualenv](https://pypi.python.org/pypi/virtualenv)
yourself, or [pyenv-virtualenv](https://github.com/yyuu/pyenv-virtualenv)
to automate the process.
----
[**Why choose rbenv over
RVM?**](https://github.com/sstephenson/rbenv/wiki/Why-rbenv%3F)
## Table of Contents
* [How It Works](#how-it-works)
* **[How It Works](#how-it-works)**
* [Understanding PATH](#understanding-path)
* [Understanding Shims](#understanding-shims)
* [Choosing the Ruby Version](#choosing-the-ruby-version)
* [Locating the Ruby Installation](#locating-the-ruby-installation)
* [Installation](#installation)
* [Choosing the Python Version](#choosing-the-python-version)
* [Locating the Python Installation](#locating-the-python-installation)
* **[Installation](#installation)**
* [Basic GitHub Checkout](#basic-github-checkout)
* [Upgrading](#upgrading)
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
* [Neckbeard Configuration](#neckbeard-configuration)
* [Uninstalling Ruby Versions](#uninstalling-ruby-versions)
* [Command Reference](#command-reference)
* [rbenv local](#rbenv-local)
* [rbenv global](#rbenv-global)
* [rbenv shell](#rbenv-shell)
* [rbenv versions](#rbenv-versions)
* [rbenv version](#rbenv-version)
* [rbenv rehash](#rbenv-rehash)
* [rbenv which](#rbenv-which)
* [rbenv whence](#rbenv-whence)
* [Development](#development)
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
* [Advanced Configuration](#advanced-configuration)
* [Uninstalling Python Versions](#uninstalling-python-versions)
* **[Command Reference](#command-reference)**
* **[Development](#development)**
* [Version History](#version-history)
* [License](#license)
----
## How It Works
At at high level, rbenv intercepts Ruby commands using shim
executables injected into your `PATH`, determines which Ruby version
At a high level, pyenv intercepts Python commands using shim
executables injected into your `PATH`, determines which Python version
has been specified by your application, and passes your commands along
to the correct Ruby installation.
to the correct Python installation.
### Understanding PATH
When you run a command like `ruby` or `rake`, your operating system
When you run a command like `python` or `pip`, your operating system
searches through a list of directories to find an executable file with
that name. This list of directories lives in an environment variable
called `PATH`, with each directory in the list separated by a colon:
@@ -79,475 +83,302 @@ precedence over another one at the end. In this example, the
`/usr/local/bin` directory will be searched first, then `/usr/bin`,
then `/bin`.
### Understanding Shims
rbenv works by inserting a directory of _shims_ at the front of your
pyenv works by inserting a directory of _shims_ at the front of your
`PATH`:
~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin
~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin
Through a process called _rehashing_, rbenv maintains shims in that
directory to match every Ruby command across every installed version
of Ruby—`irb`, `gem`, `rake`, `rails`, `ruby`, and so on.
Through a process called _rehashing_, pyenv maintains shims in that
directory to match every Python command across every installed version
of Python—`python`, `pip`, and so on.
Shims are lightweight executables that simply pass your command along
to rbenv. So with rbenv installed, when you run, say, `rake`, your
to pyenv. So with pyenv installed, when you run, say, `pip`, your
operating system will do the following:
* Search your `PATH` for an executable file named `rake`
* Find the rbenv shim named `rake` at the beginning of your `PATH`
* Run the shim named `rake`, which in turn passes the command along to
rbenv
* Search your `PATH` for an executable file named `pip`
* Find the pyenv shim named `pip` at the beginning of your `PATH`
* Run the shim named `pip`, which in turn passes the command along to
pyenv
### Choosing the Ruby Version
When you execute a shim, rbenv determines which Ruby version to use by
### Choosing the Python Version
When you execute a shim, pyenv determines which Python version to use by
reading it from the following sources, in this order:
1. The `RBENV_VERSION` environment variable, if specified. You can use
the [`rbenv shell`](#rbenv-shell) command to set this environment
1. The `PYENV_VERSION` environment variable (if specified). You can use
the [`pyenv shell`](https://github.com/yyuu/pyenv/blob/master/COMMANDS.md#pyenv-shell) command to set this environment
variable in your current shell session.
2. The application-specific `.ruby-version` file in the current
directory, if present. You can modify the current directory's
`.ruby-version` file with the [`rbenv local`](#rbenv-local)
2. The application-specific `.python-version` file in the current
directory (if present). You can modify the current directory's
`.python-version` file with the [`pyenv local`](https://github.com/yyuu/pyenv/blob/master/COMMANDS.md#pyenv-local)
command.
3. The first `.ruby-version` file found by searching each parent
directory until reaching the root of your filesystem, if any.
3. The first `.python-version` file found (if any) by searching each parent
directory, until reaching the root of your filesystem.
4. The global `~/.rbenv/version` file. You can modify this file using
the [`rbenv global`](#rbenv-global) command. If the global version
file is not present, rbenv assumes you want to use the "system"
Ruby—i.e. whatever version would be run if rbenv weren't in your
path.
4. The global `~/.pyenv/version` file. You can modify this file using
the [`pyenv global`](https://github.com/yyuu/pyenv/blob/master/COMMANDS.md#pyenv-global) command. If the global version
file is not present, pyenv assumes you want to use the "system"
Python. (In other words, whatever version would run if pyenv weren't in your
`PATH`.)
### Locating the Ruby Installation
**NOTE:** You can activate multiple versions at the same time, including multiple
versions of Python2 or Python3 simultaneously. This allows for parallel usage of
Python2 and Python3, and is required with tools like `tox`. For example, to set
your path to first use your `system` Python and Python3 (set to 2.7.9 and 3.4.2
in this example), but also have Python 3.3.6, 3.2, and 2.5 available on your
`PATH`, one would first `pyenv install` the missing versions, then set `pyenv
global system 3.3.6 3.2 2.5`. At this point, one should be able to find the full
executable path to each of these using `pyenv which`, e.g. `pyenv which python2.5`
(should display `$PYENV_ROOT/versions/2.5/bin/python2.5`), or `pyenv which
python3.4` (should display path to system Python3).
Once rbenv has determined which version of Ruby your application has
specified, it passes the command along to the corresponding Ruby
### Locating the Python Installation
Once pyenv has determined which version of Python your application has
specified, it passes the command along to the corresponding Python
installation.
Each Ruby version is installed into its own directory under
`~/.rbenv/versions`. For example, you might have these versions
installed:
Each Python version is installed into its own directory under
`~/.pyenv/versions`.
* `~/.rbenv/versions/1.8.7-p371/`
* `~/.rbenv/versions/1.9.3-p327/`
* `~/.rbenv/versions/jruby-1.7.1/`
For example, you might have these versions installed:
* `~/.pyenv/versions/2.7.8/`
* `~/.pyenv/versions/3.4.2/`
* `~/.pyenv/versions/pypy-2.4.0/`
As far as pyenv is concerned, version names are simply the directories in
`~/.pyenv/versions`.
----
Version names to rbenv are simply the names of the directories in
`~/.rbenv/versions`.
## Installation
**Compatibility note**: rbenv is _incompatible_ with RVM. Please make
sure to fully uninstall RVM and remove any references to it from
your shell initialization files before installing rbenv.
If you're on Mac OS X, consider [installing with Homebrew](#homebrew-on-mac-os-x).
### The automatic installer
Visit my other project:
https://github.com/yyuu/pyenv-installer
If you're on Mac OS X, consider
[installing with Homebrew](#homebrew-on-mac-os-x).
### Basic GitHub Checkout
This will get you going with the latest version of rbenv and make it
This will get you going with the latest version of pyenv and make it
easy to fork and contribute any changes back upstream.
1. Check out rbenv into `~/.rbenv`.
1. **Check out pyenv where you want it installed.**
A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else).
~~~ sh
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
~~~
$ git clone https://github.com/yyuu/pyenv.git ~/.pyenv
2. Add `~/.rbenv/bin` to your `$PATH` for access to the `rbenv`
command-line utility.
~~~ sh
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
~~~
2. **Define environment variable `PYENV_ROOT`** to point to the path where
pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access
to the `pyenv` command-line utility.
**Ubuntu note**: Modify your `~/.profile` instead of `~/.bash_profile`.
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshrc` file instead of `~/.bash_profile`.
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
3. Add `rbenv init` to your shell to enable shims and autocompletion.
3. **Add `pyenv init` to your shell** to enable shims and autocompletion.
Please make sure `eval "$(pyenv init -)"` is placed toward the end of the shell
configuration file since it manipulates `PATH` during the initialization.
~~~ sh
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
~~~
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
_Same as in previous step, use `~/.profile` on Ubuntu, `~/.zshrc` for zsh._
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
**General warning**: There are some systems where the `BASH_ENV` variable is configured
to point to `.bashrc`. On such systems you should almost certainly put the abovementioned line
`eval "$(pyenv init -)` into `.bash_profile`, and **not** into `.bashrc`. Otherwise you
may observe strange behaviour, such as `pyenv` getting into an infinite loop.
See [#264](https://github.com/yyuu/pyenv/issues/264) for details.
4. Restart your shell as a login shell so the path changes take effect.
You can now begin using rbenv.
4. **Restart your shell so the path changes take effect.**
You can now begin using pyenv.
~~~ sh
$ exec $SHELL -l
~~~
$ exec $SHELL
5. Install [ruby-build](https://github.com/sstephenson/ruby-build),
which provides an `rbenv install` command that simplifies the
process of installing new Ruby versions.
5. **Install Python versions into `$PYENV_ROOT/versions`.**
For example, to download and install Python 2.7.8, run:
~~~
$ rbenv install 1.9.3-p327
~~~
$ pyenv install 2.7.8
As an alternative, you can download and compile Ruby yourself into
`~/.rbenv/versions/`.
**NOTE:** If you need to pass configure option to build, please use
```CONFIGURE_OPTS``` environment variable.
**NOTE:** If you want to use proxy to download, please use `http_proxy` and `https_proxy`
environment variable.
6. Rebuild the shim executables. You should do this any time you
install a new Ruby executable (for example, when installing a new
Ruby version, or when installing a gem that provides a command).
**NOTE:** If you are having trouble installing a python version,
please visit the wiki page about
[Common Build Problems](https://github.com/yyuu/pyenv/wiki/Common-build-problems)
6. **Rebuild the shim binaries.**
You should do this any time you install a new Python binary.
(Examples: installing a new Python version, or installing a package that provides a binary.)
$ pyenv rehash
This can be automated for pip using
[pyenv-pip-rehash](https://github.com/yyuu/pyenv-pip-rehash), which invokes
`pyenv rehash` after (un)installing packages using pip.
~~~
$ rbenv rehash
~~~
#### Upgrading
If you've installed rbenv manually using git, you can upgrade your
installation to the cutting-edge version at any time.
If you've installed pyenv using the instructions above, you can
upgrade your installation at any time using git.
~~~ sh
$ cd ~/.rbenv
$ git pull
~~~
To upgrade to the latest development version of pyenv, use `git pull`:
To use a specific release of rbenv, check out the corresponding tag:
$ cd ~/.pyenv
$ git pull
~~~ sh
$ cd ~/.rbenv
$ git fetch
$ git checkout v0.3.0
~~~
To upgrade to a specific release of pyenv, check out the corresponding tag:
$ cd ~/.pyenv
$ git fetch
$ git tag
v0.1.0
$ git checkout v0.1.0
### Uninstalling pyenv
The simplicity of pyenv makes it easy to temporarily disable it, or
uninstall from the system.
1. To **disable** pyenv managing your Python versions, simply remove the
`pyenv init` line from your shell startup configuration. This will
remove pyenv shims directory from PATH, and future invocations like
`python` will execute the system Python version, as before pyenv.
`pyenv` will still be accessible on the command line, but your Python
apps won't be affected by version switching.
2. To completely **uninstall** pyenv, perform step (1) and then remove
its root directory. This will **delete all Python versions** that were
installed under `` `pyenv root`/versions/ `` directory:
rm -rf `pyenv root`
If you've installed pyenv using a package manager, as a final step
perform the pyenv package removal. For instance, for Homebrew:
brew uninstall pyenv
## Command Reference
### Homebrew on Mac OS X
You can also install rbenv using the
[Homebrew](http://mxcl.github.com/homebrew/) package manager on Mac OS
X.
You can also install pyenv using the [Homebrew](http://brew.sh)
package manager for Mac OS X.
~~~
$ brew update
$ brew install rbenv
$ brew install ruby-build
~~~
$ brew update
$ brew install pyenv
To later update these installs, use `upgrade` instead of `install`.
Afterwards you'll still need to add `eval "$(rbenv init -)"` to your
profile as stated in the caveats. You'll only ever have to do this
once.
To upgrade pyenv in the future, use `upgrade` instead of `install`.
### Neckbeard Configuration
After installation, you'll need to add `eval "$(pyenv init -)"` to your profile (as stated in the caveats displayed by Homebrew — to display them again, use `brew info pyenv`). You only need to add that to your profile once.
Then follow the rest of the post-installation steps under "Basic GitHub Checkout" above, starting with #4 ("restart your shell so the path changes take effect").
### Advanced Configuration
Skip this section unless you must know what every line in your shell
profile is doing.
`rbenv init` is the only command that crosses the line of loading
`pyenv init` is the only command that crosses the line of loading
extra commands into your shell. Coming from rvm, some of you might be
opposed to this idea. Here's what `rbenv init` actually does:
opposed to this idea. Here's what `pyenv init` actually does:
1. Sets up your shims path. This is the only requirement for rbenv to
1. **Sets up your shims path.** This is the only requirement for pyenv to
function properly. You can do this by hand by prepending
`~/.rbenv/shims` to your `$PATH`.
`~/.pyenv/shims` to your `$PATH`.
2. Installs autocompletion. This is entirely optional but pretty
useful. Sourcing `~/.rbenv/completions/rbenv.bash` will set that
up. There is also a `~/.rbenv/completions/rbenv.zsh` for Zsh
2. **Installs autocompletion.** This is entirely optional but pretty
useful. Sourcing `~/.pyenv/completions/pyenv.bash` will set that
up. There is also a `~/.pyenv/completions/pyenv.zsh` for Zsh
users.
3. Rehashes shims. From time to time you'll need to rebuild your
3. **Rehashes shims.** From time to time you'll need to rebuild your
shim files. Doing this on init makes sure everything is up to
date. You can always run `rbenv rehash` manually.
date. You can always run `pyenv rehash` manually.
4. Installs the sh dispatcher. This bit is also optional, but allows
rbenv and plugins to change variables in your current shell, making
commands like `rbenv shell` possible. The sh dispatcher doesn't do
4. **Installs the sh dispatcher.** This bit is also optional, but allows
pyenv and plugins to change variables in your current shell, making
commands like `pyenv shell` possible. The sh dispatcher doesn't do
anything crazy like override `cd` or hack your shell prompt, but if
for some reason you need `rbenv` to be a real script rather than a
for some reason you need `pyenv` to be a real script rather than a
shell function, you can safely skip it.
Run `rbenv init -` for yourself to see exactly what happens under the
hood.
To see exactly what happens under the hood for yourself, run `pyenv init -`.
### Uninstalling Ruby Versions
As time goes on, Ruby versions you install will accumulate in your
`~/.rbenv/versions` directory.
### Uninstalling Python Versions
To remove old Ruby versions, simply `rm -rf` the directory of the
version you want to remove. You can find the directory of a particular
Ruby verison with the `rbenv prefix` command, e.g. `rbenv prefix
1.8.7-p357`.
As time goes on, you will accumulate Python versions in your
`~/.pyenv/versions` directory.
To remove old Python versions, `pyenv uninstall` command to automate
the removal process.
Alternatively, simply `rm -rf` the directory of the version you want
to remove. You can find the directory of a particular Python version
with the `pyenv prefix` command, e.g. `pyenv prefix 2.6.8`.
----
The [ruby-build](https://github.com/sstephenson/ruby-build) plugin
provides an `rbenv uninstall` command to automate the removal
process.
## Command Reference
Like `git`, the `rbenv` command delegates to subcommands based on its
first argument. The most common subcommands are:
See [COMMANDS.md](COMMANDS.md).
### rbenv local
Sets a local application-specific Ruby version by writing the version
name to a `.ruby-version` file in the current directory. This version
overrides the global version, and can be overridden itself by setting
the `RBENV_VERSION` environment variable or with the `rbenv shell`
command.
----
$ rbenv local 1.9.3-p327
## Environment variables
When run without a version number, `rbenv local` reports the currently
configured local version. You can also unset the local version:
You can affect how pyenv operates with the following settings:
$ rbenv local --unset
Previous versions of rbenv stored local version specifications in a
file named `.rbenv-version`. For backwards compatibility, rbenv will
read a local version specified in an `.rbenv-version` file, but a
`.ruby-version` file in the same directory will take precedence.
### rbenv global
Sets the global version of Ruby to be used in all shells by writing
the version name to the `~/.rbenv/version` file. This version can be
overridden by an application-specific `.ruby-version` file, or by
setting the `RBENV_VERSION` environment variable.
$ rbenv global 1.8.7-p352
The special version name `system` tells rbenv to use the system Ruby
(detected by searching your `$PATH`).
When run without a version number, `rbenv global` reports the
currently configured global version.
### rbenv shell
Sets a shell-specific Ruby version by setting the `RBENV_VERSION`
environment variable in your shell. This version overrides
application-specific versions and the global version.
$ rbenv shell jruby-1.7.1
When run without a version number, `rbenv shell` reports the current
value of `RBENV_VERSION`. You can also unset the shell version:
$ rbenv shell --unset
Note that you'll need rbenv's shell integration enabled (step 3 of
the installation instructions) in order to use this command. If you
prefer not to use shell integration, you may simply set the
`RBENV_VERSION` variable yourself:
$ export RBENV_VERSION=jruby-1.7.1
### rbenv versions
Lists all Ruby versions known to rbenv, and shows an asterisk next to
the currently active version.
$ rbenv versions
1.8.7-p352
1.9.2-p290
* 1.9.3-p327 (set by /Users/sam/.rbenv/version)
jruby-1.7.1
rbx-1.2.4
ree-1.8.7-2011.03
### rbenv version
Displays the currently active Ruby version, along with information on
how it was set.
$ rbenv version
1.8.7-p352 (set by /Volumes/37signals/basecamp/.ruby-version)
### rbenv rehash
Installs shims for all Ruby executables known to rbenv (i.e.,
`~/.rbenv/versions/*/bin/*`). Run this command after you install a new
version of Ruby, or install a gem that provides commands.
$ rbenv rehash
### rbenv which
Displays the full path to the executable that rbenv will invoke when
you run the given command.
$ rbenv which irb
/Users/sam/.rbenv/versions/1.9.3-p327/bin/irb
### rbenv whence
Lists all Ruby versions with the given command installed.
$ rbenv whence rackup
1.9.3-p327
jruby-1.7.1
ree-1.8.7-2011.03
name | default | description
-----|---------|------------
`PYENV_VERSION` | | Specifies the Python version to be used.<br>Also see [`pyenv shell`](#pyenv-shell)
`PYENV_ROOT` | `~/.pyenv` | Defines the directory under which Python versions and shims reside.<br>Also see `pyenv root`
`PYENV_DEBUG` | | Outputs debug information.<br>Also as: `pyenv --debug <subcommand>`
`PYENV_HOOK_PATH` | [_see wiki_][hooks] | Colon-separated list of paths searched for pyenv hooks.
`PYENV_DIR` | `$PWD` | Directory to start searching for `.python-version` files.
## Development
The rbenv source code is [hosted on
GitHub](https://github.com/sstephenson/rbenv). It's clean, modular,
The pyenv source code is [hosted on
GitHub](https://github.com/yyuu/pyenv). It's clean, modular,
and easy to understand, even if you're not a shell hacker.
Tests are executed using [Bats](https://github.com/sstephenson/bats):
$ bats test
$ bats/test/<file>.bats
Please feel free to submit pull requests and file bugs on the [issue
tracker](https://github.com/sstephenson/rbenv/issues).
tracker](https://github.com/yyuu/pyenv/issues).
### Version History
**0.4.0** (January 4, 2013)
* rbenv now prefers `.ruby-version` files to `.rbenv-version` files
for specifying local application-specific versions. The
`.ruby-version` file has the same format as `.rbenv-version` but is
[compatible with other Ruby version
managers](https://gist.github.com/1912050).
* Deprecated `ruby-local-exec` and moved its functionality into the
standard `ruby` shim. See the [ruby-local-exec wiki
page](https://github.com/sstephenson/wiki/ruby-local-exec) for
upgrade instructions.
* Modified shims to include the full path to rbenv so that they can be
invoked without having rbenv's bin directory in the `$PATH`.
* Sped up `rbenv init` by avoiding rbenv reinintialization and by
using a simpler indexing approach. (Users of
[chef-rbenv](https://github.com/fnichol/chef-rbenv) should upgrade
to the latest version to fix a [compatibility
issue](https://github.com/fnichol/chef-rbenv/pull/26).)
* Reworked `rbenv help` so that usage and documentation is stored as a
comment in each subcommand, enabling plugin commands to hook into
the help system.
* Added support for full completion of the command line, not just the
first argument.
* Updated installation instructions for Zsh and Ubuntu users.
* Fixed `rbenv which` and `rbenv prefix` with system Ruby versions.
* Changed `rbenv exec` to avoid prepending the system Ruby location to
`$PATH` to fix issues running system Ruby commands that invoke other
commands.
* Changed `rbenv rehash` to ensure it exits with a 0 status code under
normal operation, and to ensure outdated shims are removed first
when rehashing.
* Modified `rbenv rehash` to run `hash -r` afterwards, when shell
integration is enabled, to ensure the shell's command cache is
cleared.
* Removed use of the `+=` operator to support older versions of Bash.
* Adjusted non-bare `rbenv versions` output to include `system`, if
present.
* Improved documentation for installing and uninstalling Ruby
versions.
* Fixed `rbenv versions` not to display a warning if the currently
specified version doesn't exist.
* Fixed an instance of local variable leakage in the `rbenv` shell
function wrapper.
* Changed `rbenv shell` to ensure it exits with a non-zero status on
failure.
* Added `rbenv --version` for printing the current version of rbenv.
* Added `/usr/lib/rbenv/hooks` to the plugin hook search path.
* Fixed `rbenv which` to account for path entries with spaces.
* Changed `rbenv init` to accept option arguments in any order.
**0.3.0** (December 25, 2011)
* Added an `rbenv root` command which prints the value of
`$RBENV_ROOT`, or the default root directory if it's unset.
* Clarified Zsh installation instructions in the readme.
* Removed some redundant code in `rbenv rehash`.
* Fixed an issue with calling `readlink` for paths with spaces.
* Changed Zsh initialization code to install completion hooks only for
interactive shells.
* Added preliminary support for ksh.
* `rbenv rehash` creates or removes shims only when necessary instead
of removing and re-creating all shims on each invocation.
* Fixed that `RBENV_DIR`, when specified, would be incorrectly
expanded to its parent directory.
* Removed the deprecated `set-default` and `set-local` commands.
* Added a `--no-rehash` option to `rbenv init` for skipping the
automatic rehash when opening a new shell.
**0.2.1** (October 1, 2011)
* Changed the `rbenv` command to ensure that `RBENV_DIR` is always an
absolute path. This fixes an issue where Ruby scripts using the
`ruby-local-exec` wrapper would go into an infinite loop when
invoked with a relative path from the command line.
**0.2.0** (September 28, 2011)
* Renamed `rbenv set-default` to `rbenv global` and `rbenv set-local`
to `rbenv local`. The `set-` commands are deprecated and will be
removed in the next major release.
* rbenv now uses `greadlink` on Solaris.
* Added a `ruby-local-exec` command which can be used in shebangs in
place of `#!/usr/bin/env ruby` to properly set the project-specific
Ruby version regardless of current working directory.
* Fixed an issue with `rbenv rehash` when no binaries are present.
* Added support for `rbenv-sh-*` commands, which run inside the
current shell instead of in a child process.
* Added an `rbenv shell` command for conveniently setting the
`$RBENV_VERSION` environment variable.
* Added support for storing rbenv versions and shims in directories
other than `~/.rbenv` with the `$RBENV_ROOT` environment variable.
* Added support for debugging rbenv via `set -x` when the
`$RBENV_DEBUG` environment variable is set.
* Refactored the autocompletion system so that completions are now
built-in to each command and shared between bash and Zsh.
* Added support for plugin bundles in `~/.rbenv/plugins` as documented
in [issue #102](https://github.com/sstephenson/rbenv/pull/102).
* Added `/usr/local/etc/rbenv.d` to the list of directories searched
for rbenv hooks.
* Added support for an `$RBENV_DIR` environment variable which
defaults to the current working directory for specifying where rbenv
searches for local version files.
**0.1.2** (August 16, 2011)
* Fixed rbenv to be more resilient against nonexistent entries in
`$PATH`.
* Made the `rbenv rehash` command operate atomically.
* Modified the `rbenv init` script to automatically run `rbenv
rehash` so that shims are recreated whenever a new shell is opened.
* Added initial support for Zsh autocompletion.
* Removed the dependency on egrep for reading version files.
**0.1.1** (August 14, 2011)
* Fixed a syntax error in the `rbenv help` command.
* Removed `-e` from the shebang in favor of `set -e` at the top of
each file for compatibility with operating systems that do not
support more than one argument in the shebang.
**0.1.0** (August 11, 2011)
* Initial public release.
### License
(The MIT license)
Copyright (c) 2013 Sam Stephenson
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.
[pyenv-virtualenv]: https://github.com/yyuu/pyenv-virtualenv#readme
[hooks]: https://github.com/yyuu/pyenv/wiki/Authoring-plugins#pyenv-hooks

1
bin/pyenv Symbolic link
View File

@@ -0,0 +1 @@
../libexec/pyenv

23
bin/python-local-exec Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
#
# `python-local-exec` is a drop-in replacement for the standard Python
# shebang line:
#
# #!/usr/bin/env python-local-exec
#
# Use it for scripts inside a project with an `.pyenv-version`
# file. When you run the scripts, they'll use the project-specified
# Python version, regardless of what directory they're run from. Useful
# for e.g. running project tasks in cron scripts without needing to
# `cd` into the project first.
set -e
export PYENV_DIR="${1%/*}"
[ -n "$PYENV_SILENCE_WARNINGS" ] || {
echo "pyenv: \`python-local-exec' is deprecated and will be removed in the next release."
echo " To upgrade: https://github.com/yyuu/pyenv/wiki/python-local-exec"
echo
} >&2
exec python "$@"

View File

@@ -1 +0,0 @@
../libexec/rbenv

View File

@@ -1,23 +0,0 @@
#!/usr/bin/env bash
#
# `ruby-local-exec` is a drop-in replacement for the standard Ruby
# shebang line:
#
# #!/usr/bin/env ruby-local-exec
#
# Use it for scripts inside a project with an `.rbenv-version`
# file. When you run the scripts, they'll use the project-specified
# Ruby version, regardless of what directory they're run from. Useful
# for e.g. running project tasks in cron scripts without needing to
# `cd` into the project first.
set -e
export RBENV_DIR="${1%/*}"
[ -n "$RBENV_SILENCE_WARNINGS" ] || {
echo "rbenv: \`ruby-local-exec' is deprecated and will be removed in the next release."
echo " To upgrade: https://github.com/sstephenson/rbenv/wiki/ruby-local-exec"
echo
} >&2
exec ruby "$@"

View File

@@ -1,16 +1,16 @@
_rbenv() {
_pyenv() {
COMPREPLY=()
local word="${COMP_WORDS[COMP_CWORD]}"
if [ "$COMP_CWORD" -eq 1 ]; then
COMPREPLY=( $(compgen -W "$(rbenv commands)" -- "$word") )
COMPREPLY=( $(compgen -W "$(pyenv commands)" -- "$word") )
else
local words=("${COMP_WORDS[@]}")
unset words[0]
unset words[$COMP_CWORD]
local completions=$(rbenv completions "${words[@]}")
local completions=$(pyenv completions "${words[@]}")
COMPREPLY=( $(compgen -W "$completions" -- "$word") )
fi
}
complete -F _rbenv rbenv
complete -F _pyenv pyenv

22
completions/pyenv.fish Normal file
View File

@@ -0,0 +1,22 @@
function __fish_pyenv_needs_command
set cmd (commandline -opc)
if [ (count $cmd) -eq 1 -a $cmd[1] = 'pyenv' ]
return 0
end
return 1
end
function __fish_pyenv_using_command
set cmd (commandline -opc)
if [ (count $cmd) -gt 1 ]
if [ $argv[1] = $cmd[2] ]
return 0
end
end
return 1
end
complete -f -c pyenv -n '__fish_pyenv_needs_command' -a '(pyenv commands)'
for cmd in (pyenv commands)
complete -f -c pyenv -n "__fish_pyenv_using_command $cmd" -a "(pyenv completions $cmd)"
end

18
completions/pyenv.zsh Normal file
View File

@@ -0,0 +1,18 @@
if [[ ! -o interactive ]]; then
return
fi
compctl -K _pyenv pyenv
_pyenv() {
local words completions
read -cA words
if [ "${#words}" -eq 2 ]; then
completions="$(pyenv commands)"
else
completions="$(pyenv completions ${words[2,-2]})"
fi
reply=(${(ps:\n:)completions})
}

View File

@@ -1,18 +0,0 @@
if [[ ! -o interactive ]]; then
return
fi
compctl -K _rbenv rbenv
_rbenv() {
local words completions
read -cA words
if [ "${#words}" -eq 2 ]; then
completions="$(rbenv commands)"
else
completions="$(rbenv completions ${words[2,-1]})"
fi
reply=("${(ps:\n:)completions}")
}

129
libexec/pyenv Executable file
View File

@@ -0,0 +1,129 @@
#!/usr/bin/env bash
set -e
export -n CDPATH
if [ "$1" = "--debug" ]; then
export PYENV_DEBUG=1
shift
fi
if [ -n "$PYENV_DEBUG" ]; then
export PS4='+ [${BASH_SOURCE##*/}:${LINENO}] '
set -x
fi
abort() {
{ if [ "$#" -eq 0 ]; then cat -
else echo "pyenv: $*"
fi
} >&2
exit 1
}
if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then
abs_dirname() {
local path="$(realpath "$1")"
echo "${path%/*}"
}
else
[ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin"
READLINK=$(type -p greadlink readlink | head -1)
[ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?"
resolve_link() {
$READLINK "$1"
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
fi
if [ -z "${PYENV_ROOT}" ]; then
PYENV_ROOT="${HOME}/.pyenv"
else
PYENV_ROOT="${PYENV_ROOT%/}"
fi
export PYENV_ROOT
# Transfer PYENV_FILE_ARG (from shims) into PYENV_DIR.
if [ -z "${PYENV_DIR}" ]; then
if [ -n "${PYENV_FILE_ARG}" ]; then
if [ -L "${PYENV_FILE_ARG}" ]; then
PYENV_DIR="$(abs_dirname "${PYENV_FILE_ARG}")"
else
PYENV_DIR="${PYENV_FILE_ARG%/*}"
fi
export PYENV_DIR
unset PYENV_FILE_ARG
fi
fi
if [ -z "${PYENV_DIR}" ]; then
PYENV_DIR="$(pwd)"
else
cd "$PYENV_DIR" 2>/dev/null || abort "cannot change working directory to \`$PYENV_DIR'"
PYENV_DIR="$(pwd)"
cd "$OLDPWD"
fi
export PYENV_DIR
shopt -s nullglob
bin_path="$(abs_dirname "$0")"
for plugin_bin in "${PYENV_ROOT}/plugins/"*/bin; do
PATH="${plugin_bin}:${PATH}"
done
export PATH="${bin_path}:${PATH}"
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d"
if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then
# Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${bin_path%/*}/pyenv.d"
fi
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks"
for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do
PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${plugin_hook}"
done
export PYENV_HOOK_PATH
shopt -u nullglob
command="$1"
case "$command" in
"" )
{ pyenv---version
pyenv-help
} | abort
;;
-v | --version )
exec pyenv---version
;;
-h | --help )
exec pyenv-help
;;
* )
command_path="$(command -v "pyenv-$command" || true)"
[ -n "$command_path" ] || abort "no such command \`$command'"
shift 1
if [ "$1" = --help ]; then
exec pyenv-help "$command"
else
exec "$command_path" "$@"
fi
;;
esac

26
libexec/pyenv---version Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Summary: Display the version of pyenv
#
# Displays the version number of this pyenv release, including the
# current revision from git, if available.
#
# The format of the git revision is:
# <version>-<num_commits>-<git_sha>
# where `num_commits` is the number of commits since `version` was
# tagged.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
version="20151210"
git_revision=""
for source_dir in "${BASH_SOURCE%/*}" "$PYENV_ROOT"; do
if cd "$source_dir" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
git_revision="${git_revision#v}"
[ -z "$git_revision" ] || break
fi
done
echo "pyenv ${git_revision:-$version}"

View File

@@ -1,11 +1,11 @@
#!/usr/bin/env bash
# Summary: List all available rbenv commands
# Usage: rbenv commands [--sh|--no-sh]
# Summary: List all available pyenv commands
# Usage: pyenv commands [--sh|--no-sh]
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
# Provide rbenv completions
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --sh
echo --no-sh
@@ -20,11 +20,13 @@ elif [ "$1" = "--no-sh" ]; then
shift
fi
IFS=: paths=($PATH)
shopt -s nullglob
{ for path in ${PATH//:/$'\n'}; do
for command in "${path}/rbenv-"*; do
command="${command##*rbenv-}"
{ for path in "${paths[@]}"; do
for command in "${path}/pyenv-"*; do
command="${command##*pyenv-}"
if [ -n "$sh" ]; then
if [ ${command:0:3} = "sh-" ]; then
echo ${command##sh-}

26
libexec/pyenv-completions Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Usage: pyenv completions <command> [arg1 arg2...]
set -e
[ -n "$PYENV_DEBUG" ] && set -x
COMMAND="$1"
if [ -z "$COMMAND" ]; then
pyenv-help --usage completions >&2
exit 1
fi
# Provide pyenv completions
if [ "$COMMAND" = "--complete" ]; then
exec pyenv-commands
fi
COMMAND_PATH="$(command -v "pyenv-$COMMAND" || command -v "pyenv-sh-$COMMAND")"
# --help is provided automatically
echo --help
if grep -iE "^([#%]|--|//) provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

47
libexec/pyenv-exec Executable file
View File

@@ -0,0 +1,47 @@
#!/usr/bin/env bash
#
# Summary: Run an executable with the selected Python version
#
# Usage: pyenv exec <command> [arg1 arg2...]
#
# Runs an executable by first preparing PATH so that the selected Python
# version's `bin' directory is at the front.
#
# For example, if the currently selected Python version is 2.7.6:
# pyenv exec pip install -rrequirements.txt
#
# is equivalent to:
# PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -rrequirements.txt
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-shims --short
fi
PYENV_VERSION="$(pyenv-version-name)"
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage exec >&2
exit 1
fi
export PYENV_VERSION
PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")"
PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}"
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks exec`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
shift 1
# CPython's `sys.executable` requires the `PYENV_BIN_PATH` to be at the top of the `PATH`.
# https://github.com/yyuu/pyenv/issues/98
export PATH="${PYENV_BIN_PATH}:${PATH}"
exec -a "$PYENV_COMMAND" "$PYENV_COMMAND_PATH" "$@"

41
libexec/pyenv-global Executable file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env bash
#
# Summary: Set or show the global Python version
#
# Usage: pyenv global <version>
#
# Sets the global Python version. You can override the global version at
# any time by setting a directory-specific version with `pyenv local'
# or by setting the `PYENV_VERSION' environment variable.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo system
exec pyenv-versions --bare
fi
versions=("$@")
PYENV_VERSION_FILE="${PYENV_ROOT}/version"
if [ -n "$versions" ]; then
pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}"
else
OLDIFS="$IFS"
IFS=: versions=($(
pyenv-version-file-read "$PYENV_VERSION_FILE" ||
pyenv-version-file-read "${PYENV_ROOT}/global" ||
pyenv-version-file-read "${PYENV_ROOT}/default" ||
echo system
))
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done
fi

View File

@@ -2,7 +2,7 @@
#
# Summary: Display help for a command
#
# Usage: rbenv help [--usage] COMMAND
# Usage: pyenv help [--usage] COMMAND
#
# Parses and displays help contents from a command's source file.
#
@@ -13,11 +13,17 @@
# documentation.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --usage
exec pyenv-commands
fi
command_path() {
local command="$1"
command -v rbenv-"$command" || command -v rbenv-sh-"$command" || true
command -v pyenv-"$command" || command -v pyenv-sh-"$command" || true
}
extract_initial_comment_block() {
@@ -36,7 +42,7 @@ extract_initial_comment_block() {
}
collect_documentation() {
awk '
$(type -p gawk awk | head -1) '
/^Summary:/ {
summary = substr($0, 10)
next
@@ -64,8 +70,8 @@ collect_documentation() {
}
function trim(str) {
gsub(/^\n*/, "", str)
gsub(/\n*$/, "", str)
sub(/^\n*/, "", str)
sub(/\n*$/, "", str)
return str
}
@@ -112,7 +118,7 @@ print_help() {
if [ -n "$usage" ]; then
echo "$usage"
else
echo "Usage: rbenv ${command}"
echo "Usage: pyenv ${command}"
fi
if [ -n "$help" ]; then
echo
@@ -138,15 +144,15 @@ if [ "$1" = "--usage" ]; then
shift
fi
if [ -z "$1" ] || [ "$1" == "rbenv" ]; then
echo "Usage: rbenv <command> [<args>]"
if [ -z "$1" ] || [ "$1" == "pyenv" ]; then
echo "Usage: pyenv <command> [<args>]"
[ -z "$usage" ] || exit
echo
echo "Some useful rbenv commands are:"
echo "Some useful pyenv commands are:"
print_summaries commands local global shell install uninstall rehash version versions which whence
echo
echo "See \`rbenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/sstephenson/rbenv#readme"
echo "See \`pyenv help <command>' for information on a specific command."
echo "For full documentation, see: https://github.com/yyuu/pyenv#readme"
else
command="$1"
if [ -n "$(command_path "$command")" ]; then
@@ -156,7 +162,7 @@ else
print_help "$command"
fi
else
echo "rbenv: no such command \`$command'" >&2
echo "pyenv: no such command \`$command'" >&2
exit 1
fi
fi

61
libexec/pyenv-hooks Executable file
View File

@@ -0,0 +1,61 @@
#!/usr/bin/env bash
# Summary: List hook scripts for a given pyenv command
# Usage: pyenv hooks <command>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo exec
echo rehash
echo which
exit
fi
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage hooks >&2
exit 1
fi
if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then
if [ -n "$PYENV_NATIVE_EXT" ]; then
echo "pyenv: failed to load \`realpath' builtin" >&2
exit 1
fi
READLINK=$(type -p greadlink readlink | head -1)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$READLINK "$1"
}
realpath() {
local cwd="$PWD"
local path="$1"
local name
while [ -n "$path" ]; do
name="${path##*/}"
[ "$name" = "$path" ] || cd "${path%/*}"
path="$(resolve_link "$name" || true)"
done
echo "${PWD}/$name"
cd "$cwd"
}
fi
IFS=: hook_paths=($PYENV_HOOK_PATH)
shopt -s nullglob
for path in "${hook_paths[@]}"; do
for script in "$path/$PYENV_COMMAND"/*.bash; do
realpath "$script"
done
done
shopt -u nullglob

157
libexec/pyenv-init Executable file
View File

@@ -0,0 +1,157 @@
#!/usr/bin/env bash
# Summary: Configure the shell environment for pyenv
# Usage: eval "$(pyenv init - [--no-rehash] [<shell>])"
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo -
echo --no-rehash
echo bash
echo fish
echo ksh
echo zsh
exit
fi
print=""
no_rehash=""
for args in "$@"
do
if [ "$args" = "-" ]; then
print=1
shift
fi
if [ "$args" = "--no-rehash" ]; then
no_rehash=1
shift
fi
done
shell="$1"
if [ -z "$shell" ]; then
shell="$(ps c -p "$PPID" -o 'ucomm=' 2>/dev/null || true)"
shell="${shell##-}"
shell="${shell%% *}"
shell="${shell:-$SHELL}"
shell="${shell##*/}"
fi
root="${0%/*}/.."
if [ -z "$print" ]; then
case "$shell" in
bash )
if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then
profile='~/.bashrc'
else
profile='~/.bash_profile'
fi
;;
zsh )
profile='~/.zshrc'
;;
ksh )
profile='~/.profile'
;;
fish )
profile='~/.config/fish/config.fish'
;;
* )
profile='your profile'
;;
esac
{ echo "# Load pyenv automatically by appending"
echo "# the following to ${profile}:"
echo
case "$shell" in
fish )
echo 'status --is-interactive; and . (pyenv init -|psub)'
;;
* )
echo 'eval "$(pyenv init -)"'
;;
esac
echo
} >&2
exit 1
fi
mkdir -p "${PYENV_ROOT}/"{shims,versions}
case "$shell" in
fish )
echo "setenv PATH '${PYENV_ROOT}/shims' \$PATH"
echo "setenv PYENV_SHELL $shell"
;;
* )
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
echo "export PYENV_SHELL=$shell"
;;
esac
completion="${root}/completions/pyenv.${shell}"
if [ -r "$completion" ]; then
case "$shell" in
fish ) echo ". '$completion'" ;;
* ) echo "source '$completion'" ;;
esac
fi
if [ -z "$no_rehash" ]; then
echo 'command pyenv rehash 2>/dev/null'
fi
commands=(`pyenv-commands --sh`)
case "$shell" in
fish )
cat <<EOS
function pyenv
set command \$argv[1]
set -e argv[1]
switch "\$command"
case ${commands[*]}
. (pyenv "sh-\$command" \$argv|psub)
case '*'
command pyenv "\$command" \$argv
end
end
EOS
;;
ksh )
cat <<EOS
function pyenv {
typeset command
EOS
;;
* )
cat <<EOS
pyenv() {
local command
EOS
;;
esac
if [ "$shell" != "fish" ]; then
IFS="|"
cat <<EOS
command="\$1"
if [ "\$#" -gt 0 ]; then
shift
fi
case "\$command" in
${commands[*]})
eval "\$(pyenv "sh-\$command" "\$@")";;
*)
command pyenv "\$command" "\$@";;
esac
}
EOS
fi

62
libexec/pyenv-local Executable file
View File

@@ -0,0 +1,62 @@
#!/usr/bin/env bash
#
# Summary: Set or show the local application-specific Python version
#
# Usage: pyenv local <version>
# pyenv local --unset
#
# Sets the local application-specific Python version by writing the
# version name to a file named `.python-version'.
#
# When you run a Python command, pyenv will look for a `.python-version'
# file in the current directory and each parent directory. If no such
# file is found in the tree, pyenv will use the global Python version
# specified with `pyenv global'. A version specified with the
# `PYENV_VERSION' environment variable takes precedence over local
# and global versions.
#
# For backwards compatibility, pyenv will also read version
# specifications from `.pyenv-version' files, but a `.python-version'
# file in the same directory takes precedence.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec pyenv-versions --bare
fi
versions=("$@")
if [ "$versions" = "--unset" ]; then
rm -f .python-version .pyenv-version
elif [ -n "$versions" ]; then
previous_file="$(PYENV_VERSION= pyenv-version-origin || true)"
pyenv-version-file-write .python-version "${versions[@]}"
if [ "$previous_file" -ef .pyenv-version ]; then
rm -f .pyenv-version
{ echo "pyenv: removed existing \`.pyenv-version' file and migrated"
echo " local version specification to \`.python-version' file"
} >&2
fi
else
OLDIFS="$IFS"
IFS=: versions=($(
pyenv-version-file-read .python-version ||
pyenv-version-file-read .pyenv-version ||
{ echo "pyenv: no local version configured for this directory"
exit 1
} >&2
))
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done
fi

56
libexec/pyenv-prefix Executable file
View File

@@ -0,0 +1,56 @@
#!/usr/bin/env bash
# Summary: Display prefix for a Python version
# Usage: pyenv prefix [<version>]
#
# Displays the directory where a Python version is installed. If no
# version is given, `pyenv prefix' displays the location of the
# currently selected version.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo system
exec pyenv-versions --bare
fi
if [ -n "$1" ]; then
OLDIFS="$IFS"
{ IFS=:
export PYENV_VERSION="$*"
}
IFS="$OLDIFS"
elif [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION="$(pyenv-version-name)"
fi
PYENV_PREFIX_PATHS=()
OLDIFS="$IFS"
{ IFS=:
for version in ${PYENV_VERSION}; do
if [ "$version" = "system" ]; then
if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)"; then
PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}"
else
echo "pyenv: system version not found in PATH" >&2
exit 1
fi
else
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
fi
if [ -d "$PYENV_PREFIX_PATH" ]; then
PYENV_PREFIX_PATHS=("${PYENV_PREFIX_PATHS[@]}" "$PYENV_PREFIX_PATH")
else
echo "pyenv: version \`${version}' not installed" >&2
exit 1
fi
done
}
IFS="$OLDIFS"
OLDIFS="$IFS"
{ IFS=:
echo "${PYENV_PREFIX_PATHS[*]}"
}
IFS="$OLDIFS"

View File

@@ -1,23 +1,27 @@
#!/usr/bin/env bash
# Summary: Rehash rbenv shims (run this after installing executables)
# Summary: Rehash pyenv shims (run this after installing executables)
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
SHIM_PATH="${RBENV_ROOT}/shims"
PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.rbenv-shim"
SHIM_PATH="${PYENV_ROOT}/shims"
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 rbenv-rehash is running at a time by
# 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 ||
{ echo "rbenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists"
{ 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
@@ -31,7 +35,7 @@ remove_prototype_shim() {
}
# The prototype shim file is a script that re-execs itself, passing
# its filename and any arguments to `rbenv exec`. This file is
# its filename and any arguments to `pyenv exec`. This file is
# hard-linked for every executable and then removed. The linking
# technique is fast, uses less disk space than unique files, and also
# serves as a locking mechanism.
@@ -39,16 +43,16 @@ create_prototype_shim() {
cat > "$PROTOTYPE_SHIM_PATH" <<SH
#!/usr/bin/env bash
set -e
[ -n "\$RBENV_DEBUG" ] && set -x
[ -n "\$PYENV_DEBUG" ] && set -x
program="\${0##*/}"
if [ "\$program" = "ruby" ]; then
if [[ "\$program" = "python"* ]]; then
for arg; do
case "\$arg" in
-e* | -- ) break ;;
-c* | -- ) break ;;
*/* )
if [ -f "\$arg" ]; then
export RBENV_DIR="\${arg%/*}"
export PYENV_FILE_ARG="\$arg"
break
fi
;;
@@ -56,59 +60,60 @@ if [ "\$program" = "ruby" ]; then
done
fi
export RBENV_ROOT="$RBENV_ROOT"
exec "$(command -v rbenv)" exec "\$program" "\$@"
export PYENV_ROOT="$PYENV_ROOT"
exec "$(command -v pyenv)" exec "\$program" "\$@"
SH
chmod +x "$PROTOTYPE_SHIM_PATH"
}
# If the contents of the prototype shim file differ from the contents
# of the first shim in the shims directory, assume rbenv has been
# of the first shim in the shims directory, assume pyenv has been
# upgraded and the existing shims need to be removed.
remove_outdated_shims() {
for shim in *; do
local shim
for shim in "$SHIM_PATH"/*; do
if ! diff "$PROTOTYPE_SHIM_PATH" "$shim" >/dev/null 2>&1; then
for shim in *; do rm -f "$shim"; done
rm -f "$SHIM_PATH"/*
fi
break
done
}
# List basenames of executables for every Python version
list_executable_names() {
local version file
pyenv-versions --bare --skip-aliases | \
while read version; do
for file in "${PYENV_ROOT}/versions/${version}/bin/"*; do
echo "${file##*/}"
done
done
}
# The basename of each argument passed to `make_shims` will be
# registered for installation as a shim. In this way, plugins may call
# `make_shims` with a glob to register many shims at once.
make_shims() {
local shims="$@"
for file in $shims; do
local shim="${file##*/}"
local file shim
for file; do
shim="${file##*/}"
register_shim "$shim"
done
}
# Create an empty array for the list of registered shims and an empty
# string to use as a search index.
registered_shims=()
registered_shims_index=""
registered_shims=" "
# We will keep track of shims registered for installation with the
# global `reigstered_shims` array and with a global search index
# string. The array will let us iterate over all registered shims. The
# index string will let us quickly check whether a shim with the given
# name has been registered or not.
# Registers the name of a shim to be generated.
register_shim() {
local shim="$@"
registered_shims["${#registered_shims[@]}"]="$shim"
registered_shims_index="$registered_shims_index/$shim/"
registered_shims="${registered_shims}${1} "
}
# To install all the registered shims, we iterate over the
# `registered_shims` array and create a link if one does not already
# exist.
# Install all the shims registered via `make_shims` or `register_shim` directly.
install_registered_shims() {
local shim
for shim in "${registered_shims[@]}"; do
[ -e "$shim" ] || ln -f "$PROTOTYPE_SHIM_PATH" "$shim"
local shim file
for shim in $registered_shims; do
file="${SHIM_PATH}/${shim}"
[ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file"
done
}
@@ -118,34 +123,30 @@ install_registered_shims() {
# removed.
remove_stale_shims() {
local shim
for shim in *; do
if [[ "$registered_shims_index" != *"/$shim/"* ]]; then
for shim in "$SHIM_PATH"/*; do
if [[ "$registered_shims" != *" ${shim##*/} "* ]]; then
rm -f "$shim"
fi
done
}
# Change to the shims directory.
cd "$SHIM_PATH"
shopt -s nullglob
# Create the prototype shim, then register shims for all known
# executables.
create_prototype_shim
remove_outdated_shims
make_shims ../versions/*/bin/*
make_shims $(list_executable_names | sort -u)
# Restore the previous working directory.
cd "$OLDPWD"
# Allow plugins to register shims.
for script in $(rbenv-hooks rehash); do
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks rehash`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
# Change back to the shims directory to install the registered shims
# and remove stale shims.
cd "$SHIM_PATH"
install_registered_shims
remove_stale_shims

View File

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

23
libexec/pyenv-sh-rehash Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-rehash --complete
fi
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
# When pyenv shell integration is enabled, delegate to pyenv-rehash,
# then tell the shell to empty its command lookup cache.
pyenv-rehash
case "$shell" in
fish )
# no rehash support
;;
* )
echo "hash -r 2>/dev/null || true"
;;
esac

67
libexec/pyenv-sh-shell Executable file
View File

@@ -0,0 +1,67 @@
#!/usr/bin/env bash
#
# Summary: Set or show the shell-specific Python version
#
# Usage: pyenv shell <version>
# pyenv shell --unset
#
# Sets a shell-specific Python version by setting the `PYENV_VERSION'
# environment variable in your shell. This version overrides local
# application-specific versions and the global version.
#
# <version> should be a string matching a Python version known to pyenv.
# The special version string `system' will use your default system Python.
# Run `pyenv versions' for a list of available Python versions.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec pyenv-versions --bare
fi
versions=("$@")
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
if [ -z "$versions" ]; then
if [ -z "$PYENV_VERSION" ]; then
echo "pyenv: no shell-specific version configured" >&2
exit 1
else
echo "echo \"\$PYENV_VERSION\""
exit
fi
fi
if [ "$versions" = "--unset" ]; then
case "$shell" in
fish )
echo "set -e PYENV_VERSION"
;;
* )
echo "unset PYENV_VERSION"
;;
esac
exit
fi
# Make sure the specified version is installed.
if pyenv-prefix "${versions[@]}" >/dev/null; then
OLDIFS="$IFS"
IFS=: version="${versions[*]}"
IFS="$OLDIFS"
case "$shell" in
fish )
echo "setenv PYENV_VERSION \"${version}\""
;;
* )
echo "export PYENV_VERSION=\"${version}\""
;;
esac
else
echo "false"
exit 1
fi

View File

@@ -1,17 +1,19 @@
#!/usr/bin/env bash
# Summary: List existing rbenv shims
# Usage: rbenv shims [--short]
# Summary: List existing pyenv shims
# Usage: pyenv shims [--short]
set -e
[ -n "$RBENV_DEBUG" ] && set -x
[ -n "$PYENV_DEBUG" ] && set -x
# Provide rbenv completions
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --short
exit
fi
for command in "${RBENV_ROOT}/shims/"*; do
shopt -s nullglob
for command in "${PYENV_ROOT}/shims/"*; do
if [ "$1" = "--short" ]; then
echo "${command##*/}"
else

20
libexec/pyenv-version Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Summary: Show the current Python version and its origin
#
# Shows the currently selected Python version and how it was
# selected. To obtain only the version string, use `pyenv
# version-name'.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
exitcode=0
OLDIFS="$IFS"
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) || exitcode=$?
IFS="$OLDIFS"
for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do
echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))"
done
exit $exitcode

35
libexec/pyenv-version-file Executable file
View File

@@ -0,0 +1,35 @@
#!/usr/bin/env bash
# Summary: Detect the file that sets the current pyenv version
set -e
[ -n "$PYENV_DEBUG" ] && set -x
find_local_version_file() {
local root="$1"
while true; do
[[ "$root" =~ ^//[^/]*$ ]] && break
if [ -e "${root}/.python-version" ]; then
echo "${root}/.python-version"
exit
elif [ -e "${root}/.pyenv-version" ]; then
echo "${root}/.pyenv-version"
exit
fi
[ -n "$root" ] || break
root="${root%/*}"
done
}
find_local_version_file "$PYENV_DIR"
[ "$PYENV_DIR" = "$PWD" ] || find_local_version_file "$PWD"
global_version_file="${PYENV_ROOT}/version"
if [ -e "$global_version_file" ]; then
echo "$global_version_file"
elif [ -e "${PYENV_ROOT}/global" ]; then
echo "${PYENV_ROOT}/global"
elif [ -e "${PYENV_ROOT}/default" ]; then
echo "${PYENV_ROOT}/default"
else
echo "$global_version_file"
fi

22
libexec/pyenv-version-file-read Executable file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Usage: pyenv version-file-read <file>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
VERSION_FILE="$1"
if [ -e "$VERSION_FILE" ]; then
# Read the first non-whitespace word from the specified version file.
# Be careful not to load it whole in case there's something crazy in it.
IFS="${IFS}"$'\r'
words=($(cut -b 1-1024 "$VERSION_FILE" | sed 's/^\s*\(\S\+\).*/\1/'))
versions=("${words[@]}")
if [ -n "$versions" ]; then
IFS=":"
echo "${versions[*]}"
exit
fi
fi
exit 1

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env bash
# Usage: pyenv version-file-write <file> <version>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
PYENV_VERSION_FILE="$1"
shift || true
versions=("$@")
if [ -z "$versions" ] || [ -z "$PYENV_VERSION_FILE" ]; then
pyenv-help --usage version-file-write >&2
exit 1
fi
# Make sure the specified version is installed.
pyenv-prefix "${versions[@]}" >/dev/null
# Write the version out to disk.
# Create an empty file. Using "rm" might cause a permission error.
> "$PYENV_VERSION_FILE"
for version in "${versions[@]}"; do
echo "$version" >> "$PYENV_VERSION_FILE"
done

46
libexec/pyenv-version-name Executable file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
# Summary: Show the current Python version
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ -z "$PYENV_VERSION" ]; then
PYENV_VERSION_FILE="$(pyenv-version-file)"
PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)"
fi
if [ -z "$PYENV_VERSION" ] || [ "$PYENV_VERSION" = "system" ]; then
echo "system"
exit
fi
version_exists() {
local version="$1"
[ -d "${PYENV_ROOT}/versions/${version}" ]
}
versions=()
OLDIFS="$IFS"
{ IFS=:
any_not_installed=0
for version in ${PYENV_VERSION}; do
if version_exists "$version" || [ "$version" = "system" ]; then
versions=("${versions[@]}" "${version}")
elif version_exists "${version#python-}"; then
versions=("${versions[@]}" "${version#python-}")
else
echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2
any_not_installed=1
fi
done
}
IFS="$OLDIFS"
OLDIFS="$IFS"
{ IFS=:
echo "${versions[*]}"
}
IFS="$OLDIFS"
if [ "$any_not_installed" = 1 ]; then
exit 1
fi

10
libexec/pyenv-version-origin Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/env bash
# Summary: Explain how the current Python version is set
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ -n "$PYENV_VERSION" ]; then
echo "PYENV_VERSION environment variable"
else
pyenv-version-file
fi

130
libexec/pyenv-versions Executable file
View File

@@ -0,0 +1,130 @@
#!/usr/bin/env bash
# Summary: List all Python versions available to pyenv
# Usage: pyenv versions [--bare] [--skip-aliases]
#
# Lists all Python versions found in `$PYENV_ROOT/versions/*'.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
unset bare
unset skip_aliases
# Provide pyenv completions
for arg; do
case "$arg" in
--complete )
echo --bare
echo --skip-aliases
exit ;;
--bare ) bare=1 ;;
--skip-aliases ) skip_aliases=1 ;;
* )
pyenv-help --usage versions >&2
exit 1
;;
esac
done
versions_dir="${PYENV_ROOT}/versions"
if ! enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then
if [ -n "$PYENV_NATIVE_EXT" ]; then
echo "pyenv: failed to load \`realpath' builtin" >&2
exit 1
fi
READLINK=$(type -p greadlink readlink | head -1)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$READLINK "$1"
}
realpath() {
local cwd="$PWD"
local path="$1"
local name
while [ -n "$path" ]; do
name="${path##*/}"
[ "$name" = "$path" ] || cd "${path%/*}"
path="$(resolve_link "$name" || true)"
done
echo "${PWD}/$name"
cd "$cwd"
}
fi
if [ -d "$versions_dir" ]; then
versions_dir="$(realpath "$versions_dir")"
fi
if [ -n "$bare" ]; then
hit_prefix=""
miss_prefix=""
current_versions=()
include_system=""
else
hit_prefix="* "
miss_prefix=" "
OLDIFS="$IFS"
IFS=: current_versions=($(pyenv-version-name || true))
IFS="$OLDIFS"
include_system="1"
fi
num_versions=0
exists() {
local car="$1"
local cdar
shift
for cdar in "$@"; do
if [ "${car}" == "${cdar}" ]; then
return 0
fi
done
return 1
}
print_version() {
if exists "$1" "${current_versions[@]}"; then
echo "${hit_prefix}$1 (set by $(pyenv-version-origin))"
else
echo "${miss_prefix}$1"
fi
num_versions=$((num_versions + 1))
}
# Include "system" in the non-bare output, if it exists
if [ -n "$include_system" ] && PYENV_VERSION=system pyenv-which python >/dev/null 2>&1; then
print_version system
fi
shopt -s nullglob
for path in "$versions_dir"/*; do
if [ -d "$path" ]; then
if [ -n "$skip_aliases" ] && [ -L "$path" ]; then
target="$(realpath "$path")"
[ "${target%/*}" != "$versions_dir" ] || continue
[ "${target%/*/envs/*}" != "$versions_dir" ] || continue
fi
print_version "${path##*/}"
# virtual environments created by anaconda/miniconda
for env_path in "${path}/envs/"*; do
if [ -d "${env_path}" ]; then
print_version "${env_path#${PYENV_ROOT}/versions/}"
fi
done
fi
done
shopt -u nullglob
if [ "$num_versions" -eq 0 ] && [ -n "$include_system" ]; then
echo "Warning: no Python detected on the system" >&2
exit 1
fi

38
libexec/pyenv-whence Executable file
View File

@@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Summary: List all Python versions that contain the given executable
# Usage: pyenv whence [--path] <command>
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
echo --path
exec pyenv-shims --short
fi
if [ "$1" = "--path" ]; then
print_paths="1"
shift
else
print_paths=""
fi
whence() {
local command="$1"
pyenv-versions --bare | while read version; do
path="$(pyenv-prefix "$version")/bin/${command}"
if [ -x "$path" ]; then
[ "$print_paths" ] && echo "$path" || echo "$version"
fi
done
}
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage whence >&2
exit 1
fi
result="$(whence "$PYENV_COMMAND")"
[ -n "$result" ] && echo "$result"

91
libexec/pyenv-which Executable file
View File

@@ -0,0 +1,91 @@
#!/usr/bin/env bash
#
# Summary: Display the full path to an executable
#
# Usage: pyenv which <command>
#
# Displays the full path to the executable that pyenv will invoke when
# you run the given command.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv-shims --short
fi
remove_from_path() {
local path_to_remove="$1"
local path_before
local result=":$PATH:"
while [ "$path_before" != "$result" ]; do
path_before="$result"
result="${result//:$path_to_remove:/:}"
done
echo "${result%:}"
}
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then
pyenv-help --usage which >&2
exit 1
fi
OLDIFS="$IFS"
IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)})
IFS="$OLDIFS"
for version in "${versions[@]}"; do
if [ "$version" = "system" ]; then
PATH="$(remove_from_path "${PYENV_ROOT}/shims")"
PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)"
else
PYENV_COMMAND_PATH="${PYENV_ROOT}/versions/${version}/bin/${PYENV_COMMAND}"
fi
if [ -x "$PYENV_COMMAND_PATH" ]; then
break
fi
done
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks which`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do
source "$script"
done
if [ -x "$PYENV_COMMAND_PATH" ]; then
echo "$PYENV_COMMAND_PATH"
elif [ "$PYENV_VERSION" != "system" ] && [ ! -d "${PYENV_ROOT}/versions/${PYENV_VERSION}" ]; then
echo "pyenv: version \`$PYENV_VERSION' is not installed (set by $(pyenv-version-origin))" >&2
exit 1
else
any_not_installed=0
for version in "${versions[@]}"; do
if [ "$version" = "system" ]; then
continue
fi
if ! [ -d "${PYENV_ROOT}/versions/${version}" ]; then
echo "pyenv: version \`$version' is not installed" >&2
any_not_installed=1
fi
done
if [ "$any_not_installed" = 1 ]; then
exit 1
fi
echo "pyenv: $PYENV_COMMAND: command not found" >&2
versions="$(pyenv-whence "$PYENV_COMMAND" || true)"
if [ -n "$versions" ]; then
{ echo
echo "The \`$1' command exists in these Python versions:"
echo "$versions" | sed 's/^/ /g'
echo
} >&2
fi
exit 127
fi

View File

@@ -1,78 +0,0 @@
#!/usr/bin/env bash
set -e
[ -n "$RBENV_DEBUG" ] && set -x
resolve_link() {
$(type -p greadlink readlink | head -1) "$1"
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
if [ -z "${RBENV_ROOT}" ]; then
RBENV_ROOT="${HOME}/.rbenv"
else
RBENV_ROOT="${RBENV_ROOT%/}"
fi
export RBENV_ROOT
if [ -z "${RBENV_DIR}" ]; then
RBENV_DIR="$(pwd)"
else
cd "$RBENV_DIR" 2>/dev/null || {
echo "rbenv: cannot change working directory to \`$RBENV_DIR'"
exit 1
} >&2
RBENV_DIR="$(pwd)"
cd "$OLDPWD"
fi
export RBENV_DIR
shopt -s nullglob
bin_path="$(abs_dirname "$0")"
for plugin_bin in "${RBENV_ROOT}/plugins/"*/bin; do
bin_path="${bin_path}:${plugin_bin}"
done
export PATH="${bin_path}:${PATH}"
hook_path="${RBENV_HOOK_PATH}:${RBENV_ROOT}/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks"
for plugin_hook in "${RBENV_ROOT}/plugins/"*/etc/rbenv.d; do
hook_path="${hook_path}:${plugin_hook}"
done
export RBENV_HOOK_PATH="$hook_path"
shopt -u nullglob
command="$1"
case "$command" in
"" | "-h" | "--help" )
echo -e "$(rbenv---version)\n$(rbenv-help)" >&2
;;
"-v" )
exec rbenv---version
;;
* )
command_path="$(command -v "rbenv-$command" || true)"
if [ -z "$command_path" ]; then
echo "rbenv: no such command \`$command'" >&2
exit 1
fi
shift 1
exec "$command_path" "$@"
;;
esac

View File

@@ -1,21 +0,0 @@
#!/usr/bin/env bash
# Summary: Display the version of rbenv
#
# Displays the version number of this rbenv release, including the
# current revision from git, if available.
#
# The format of the git revision is:
# <version>-<num_commits>-<git_sha>
# where `num_commits` is the number of commits since `version` was
# tagged.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
version="0.4.0"
cd "$RBENV_ROOT"
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
git_revision="${git_revision#v}"
echo "rbenv ${git_revision:-$version}"

View File

@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv completions <command> [arg1 arg2...]
set -e
[ -n "$RBENV_DEBUG" ] && set -x
COMMAND="$1"
if [ -z "$COMMAND" ]; then
rbenv-help --usage completions >&2
exit 1
fi
COMMAND_PATH="$(command -v "rbenv-$COMMAND" || command -v "rbenv-sh-$COMMAND")"
if grep -i "^# provide rbenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

View File

@@ -1,43 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Run an executable with the selected Ruby version
#
# Usage: rbenv exec <command> [arg1 arg2...]
#
# Runs an executable by first preparing PATH so that the selected Ruby
# version's `bin' directory is at the front.
#
# For example, if the currently selected Ruby version is 1.9.3-p327:
# rbenv exec bundle install
#
# is equivalent to:
# PATH="$RBENV_ROOT/versions/1.9.3-p327/bin:$PATH" bundle install
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
exec rbenv shims --short
fi
export RBENV_VERSION="$(rbenv-version-name)"
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage exec >&2
exit 1
fi
RBENV_COMMAND_PATH="$(rbenv-which "$RBENV_COMMAND")"
RBENV_BIN_PATH="${RBENV_COMMAND_PATH%/*}"
for script in $(rbenv-hooks exec); do
source "$script"
done
shift 1
if [ "$RBENV_VERSION" != "system" ]; then
export PATH="${RBENV_BIN_PATH}:${PATH}"
fi
exec -a "$RBENV_COMMAND" "$RBENV_COMMAND_PATH" "$@"

View File

@@ -1,34 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Set or show the global Ruby version
#
# Usage: rbenv global <version>
#
# Sets the global Ruby version. You can override the global version at
# any time by setting a directory-specific version with `rbenv local'
# or by setting the `RBENV_VERSION' environment variable.
#
# <version> should be a string matching a Ruby version known to rbenv.
# The special version string `system' will use your default system Ruby.
# Run `rbenv versions' for a list of available Ruby versions.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo system
exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
RBENV_VERSION_FILE="${RBENV_ROOT}/version"
if [ -n "$RBENV_VERSION" ]; then
rbenv-version-file-write "$RBENV_VERSION_FILE" "$RBENV_VERSION"
else
rbenv-version-file-read "$RBENV_VERSION_FILE" ||
rbenv-version-file-read "${RBENV_ROOT}/global" ||
rbenv-version-file-read "${RBENV_ROOT}/default" ||
echo system
fi

View File

@@ -1,47 +0,0 @@
#!/usr/bin/env bash
# Summary: List hook scripts for a given rbenv command
# Usage: rbenv hooks <command>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo exec
echo rehash
echo which
exit
fi
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage hooks >&2
exit 1
fi
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
realpath() {
local cwd="$(pwd)"
local base="$(basename $1)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
echo "$(pwd)/$base"
cd "$cwd"
}
shopt -s nullglob
for path in ${RBENV_HOOK_PATH//:/$'\n'}; do
for script in $path/"$RBENV_COMMAND"/*.bash; do
echo $(realpath $script)
done
done
shopt -u nullglob

View File

@@ -1,105 +0,0 @@
#!/usr/bin/env bash
# Summary: Configure the shell environment for rbenv
# Usage: eval "$(rbenv init - [--no-rehash] [<shell>])"
set -e
[ -n "$RBENV_DEBUG" ] && set -x
print=""
no_rehash=""
for args in "$@"
do
if [ "$args" = "-" ]; then
print=1
shift
fi
if [ "$args" = "--no-rehash" ]; then
no_rehash=1
shift
fi
done
shell="$1"
if [ -z "$shell" ]; then
shell="$(basename "$SHELL")"
fi
resolve_link() {
$(type -p greadlink readlink | head -1) $1
}
abs_dirname() {
local cwd="$(pwd)"
local path="$1"
while [ -n "$path" ]; do
cd "${path%/*}"
local name="${path##*/}"
path="$(resolve_link "$name" || true)"
done
pwd
cd "$cwd"
}
root="$(abs_dirname "$0")/.."
if [ -z "$print" ]; then
case "$shell" in
bash )
profile='~/.bash_profile'
;;
zsh )
profile='~/.zshrc'
;;
ksh )
profile='~/.profile'
;;
* )
profile='your profile'
;;
esac
{ echo "# Load rbenv automatically by adding"
echo "# the following to ${profile}:"
echo
echo 'eval "$(rbenv init -)"'
echo
} >&2
exit 1
fi
mkdir -p "${RBENV_ROOT}/"{shims,versions}
echo 'export PATH="'${RBENV_ROOT}'/shims:${PATH}"'
case "$shell" in
bash | zsh )
echo "source \"$root/completions/rbenv.${shell}\""
;;
esac
if [ -z "$no_rehash" ]; then
echo 'rbenv rehash 2>/dev/null'
fi
commands=(`rbenv-commands --sh`)
IFS="|"
cat <<EOS
rbenv() {
typeset command
command="\$1"
if [ "\$#" -gt 0 ]; then
shift
fi
case "\$command" in
${commands[*]})
eval \`rbenv "sh-\$command" "\$@"\`;;
*)
command rbenv "\$command" "\$@";;
esac
}
EOS

View File

@@ -1,54 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Set or show the local application-specific Ruby version
#
# Usage: rbenv local <version>
# rbenv local --unset
#
# Sets the local application-specific Ruby version by writing the
# version name to a file named `.ruby-version'.
#
# When you run a Ruby command, rbenv will look for a `.ruby-version'
# file in the current directory and each parent directory. If no such
# file is found in the tree, rbenv will use the global Ruby version
# specified with `rbenv global'. A version specified with the
# `RBENV_VERSION' environment variable takes precedence over local
# and global versions.
#
# For backwards compatibility, rbenv will also read version
# specifications from `.rbenv-version' files, but a `.ruby-version'
# file in the same directory takes precedence.
#
# <version> should be a string matching a Ruby version known to rbenv.
# The special version string `system' will use your default system Ruby.
# Run `rbenv versions' for a list of available Ruby versions.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec rbenv-versions --bare
fi
RBENV_VERSION="$1"
if [ "$RBENV_VERSION" = "--unset" ]; then
rm -f .ruby-version .rbenv-version
elif [ -n "$RBENV_VERSION" ]; then
if [ "$(RBENV_VERSION= rbenv-version-origin)" -ef .rbenv-version ]; then
rm -f .rbenv-version
{ echo "rbenv: removed existing \`.rbenv-version' file and migrated"
echo " local version specification to \`.ruby-version' file"
} >&2
fi
rbenv-version-file-write .ruby-version "$RBENV_VERSION"
else
rbenv-version-file-read .ruby-version ||
rbenv-version-file-read .rbenv-version ||
{ echo "rbenv: no local version configured for this directory"
exit 1
} >&2
fi

View File

@@ -1,37 +0,0 @@
#!/usr/bin/env bash
# Summary: Display prefix for a Ruby version
# Usage: rbenv prefix [<version>]
#
# Displays the directory where a Ruby version is installed. If no
# version is given, `rbenv prefix' displays the location of the
# currently selected version.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo system
exec rbenv-versions --bare
fi
if [ -n "$1" ]; then
export RBENV_VERSION="$1"
elif [ -z "$RBENV_VERSION" ]; then
RBENV_VERSION="$(rbenv-version-name)"
fi
if [ "$RBENV_VERSION" = "system" ]; then
RUBY_PATH="$(rbenv-which ruby)"
RUBY_PATH="${RUBY_PATH%/*}"
echo "${RUBY_PATH%/bin}"
exit
fi
RBENV_PREFIX_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}"
if [ ! -d "$RBENV_PREFIX_PATH" ]; then
echo "rbenv: version \`${RBENV_VERSION}' not installed" >&2
exit 1
fi
echo "$RBENV_PREFIX_PATH"

View File

@@ -1,13 +0,0 @@
#!/usr/bin/env bash
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
exec rbenv-rehash --complete
fi
# When rbenv shell integration is enabled, delegate to rbenv-rehash,
# then tell the shell to empty its command lookup cache.
rbenv-rehash
echo "hash -r"

View File

@@ -1,49 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Set or show the shell-specific Ruby version
#
# Usage: rbenv shell <version>
# rbenv shell --unset
#
# Sets a shell-specific Ruby version by setting the `RBENV_VERSION'
# environment variable in your shell. This version overrides local
# application-specific versions and the global version.
#
# <version> should be a string matching a Ruby version known to rbenv.
# The special version string `system' will use your default system Ruby.
# Run `rbenv versions' for a list of available Ruby versions.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --unset
echo system
exec rbenv-versions --bare
fi
version="$1"
if [ -z "$version" ]; then
if [ -z "$RBENV_VERSION" ]; then
echo "rbenv: no shell-specific version configured" >&2
exit 1
else
echo "echo \"\$RBENV_VERSION\""
exit
fi
fi
if [ "$version" = "--unset" ]; then
echo "unset RBENV_VERSION"
exit
fi
# Make sure the specified version is installed.
if rbenv-prefix "$version" >/dev/null; then
echo "export RBENV_VERSION=\"${version}\""
else
echo "return 1"
exit 1
fi

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bash
# Summary: Show the current Ruby version and its origin
#
# Shows the currently selected Ruby version and how it was
# selected. To obtain only the version string, use `rbenv
# version-name'.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
echo "$(rbenv-version-name) (set by $(rbenv-version-origin))"

View File

@@ -1,33 +0,0 @@
#!/usr/bin/env bash
# Summary: Detect the file that sets the current rbenv version
set -e
[ -n "$RBENV_DEBUG" ] && set -x
find_local_version_file() {
local root="$1"
while [ -n "$root" ]; do
if [ -e "${root}/.ruby-version" ]; then
echo "${root}/.ruby-version"
exit
elif [ -e "${root}/.rbenv-version" ]; then
echo "${root}/.rbenv-version"
exit
fi
root="${root%/*}"
done
}
find_local_version_file "$RBENV_DIR"
[ "$RBENV_DIR" = "$PWD" ] || find_local_version_file "$PWD"
global_version_file="${RBENV_ROOT}/version"
if [ -e "$global_version_file" ]; then
echo "$global_version_file"
elif [ -e "${RBENV_ROOT}/global" ]; then
echo "${RBENV_ROOT}/global"
elif [ -e "${RBENV_ROOT}/default" ]; then
echo "${RBENV_ROOT}/default"
else
echo "$global_version_file"
fi

View File

@@ -1,25 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv version-file-read <file>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
VERSION_FILE="$1"
if [ -e "$VERSION_FILE" ]; then
# Read the first non-whitespace word from the specified version file.
# Be careful not to load it whole in case there's something crazy in it.
version=""
while read -a words; do
word="${words[0]}"
if [ -z "$version" ] && [ -n "$word" ]; then
version="$word"
fi
done < <( cat "$VERSION_FILE" && echo )
if [ -n "$version" ]; then
echo "$version"
exit
fi
fi
exit 1

View File

@@ -1,19 +0,0 @@
#!/usr/bin/env bash
# Usage: rbenv version-file-write <file> <version>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
RBENV_VERSION_FILE="$1"
RBENV_VERSION="$2"
if [ -z "$RBENV_VERSION" ] || [ -z "$RBENV_VERSION_FILE" ]; then
rbenv-help --usage version-file-write >&2
exit 1
fi
# Make sure the specified version is installed.
rbenv-prefix "$RBENV_VERSION" >/dev/null
# Write the version out to disk.
echo "$RBENV_VERSION" > "$RBENV_VERSION_FILE"

View File

@@ -1,31 +0,0 @@
#!/usr/bin/env bash
# Summary: Show the current Ruby version
set -e
[ -n "$RBENV_DEBUG" ] && set -x
if [ -z "$RBENV_VERSION" ]; then
RBENV_VERSION_FILE="$(rbenv-version-file)"
RBENV_VERSION="$(rbenv-version-file-read "$RBENV_VERSION_FILE" || true)"
fi
if [ -z "$RBENV_VERSION" ] || [ "$RBENV_VERSION" = "system" ]; then
echo "system"
exit
fi
version_exists() {
local version="$1"
[ -d "${RBENV_ROOT}/versions/${version}" ]
}
if version_exists "$RBENV_VERSION"; then
echo "$RBENV_VERSION"
elif version_exists "${RBENV_VERSION#ruby-}"; then
{ echo "warning: ignoring extraneous \`ruby-' prefix in version \`${RBENV_VERSION}'"
echo " (set by $(rbenv-version-origin))"
} >&2
echo "${RBENV_VERSION#ruby-}"
else
echo "rbenv: version \`$RBENV_VERSION' is not installed" >&2
exit 1
fi

View File

@@ -1,10 +0,0 @@
#!/usr/bin/env bash
# Summary: Explain how the current Ruby version is set
set -e
[ -n "$RBENV_DEBUG" ] && set -x
if [ -n "$RBENV_VERSION" ]; then
echo "RBENV_VERSION environment variable"
else
rbenv-version-file
fi

View File

@@ -1,39 +0,0 @@
#!/usr/bin/env bash
# Summary: List all Ruby versions available to rbenv
# Usage: rbenv versions [--bare]
#
# Lists all Ruby versions found in `$RBENV_ROOT/versions/*'.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
if [ "$1" = "--bare" ]; then
hit_prefix=""
miss_prefix=""
current_version=""
include_system=""
else
hit_prefix="* "
miss_prefix=" "
current_version="$(rbenv-version-name || true)"
include_system="1"
fi
print_version() {
if [ "$1" == "$current_version" ]; then
echo "${hit_prefix}$(rbenv-version 2>/dev/null)"
else
echo "${miss_prefix}$1"
fi
}
# Include "system" in the non-bare output, if it exists
if [ -n "$include_system" ] && RBENV_VERSION=system rbenv-which ruby >/dev/null 2>&1; then
print_version system
fi
for path in "${RBENV_ROOT}/versions/"*; do
if [ -d "$path" ]; then
print_version "${path##*/}"
fi
done

View File

@@ -1,38 +0,0 @@
#!/usr/bin/env bash
# Summary: List all Ruby versions that contain the given executable
# Usage: rbenv whence [--path] <command>
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
echo --path
exec rbenv shims --short
fi
if [ "$1" = "--path" ]; then
print_paths="1"
shift
else
print_paths=""
fi
whence() {
local command="$1"
rbenv-versions --bare | while read version; do
path="$(rbenv-prefix "$version")/bin/${command}"
if [ -x "$path" ]; then
[ "$print_paths" ] && echo "$path" || echo "$version"
fi
done
}
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage whence >&2
exit 1
fi
result="$(whence "$RBENV_COMMAND")"
[ -n "$result" ] && echo "$result"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/env bash
#
# Summary: Display the full path to an executable
#
# Usage: rbenv which <command>
#
# Displays the full path to the executable that rbenv will invoke when
# you run the given command.
set -e
[ -n "$RBENV_DEBUG" ] && set -x
# Provide rbenv completions
if [ "$1" = "--complete" ]; then
exec rbenv shims --short
fi
expand_path() {
if [ ! -d "$1" ]; then
return 1
fi
local cwd="$(pwd)"
cd "$1"
pwd
cd "$cwd"
}
remove_from_path() {
local path_to_remove="$(expand_path "$1")"
local result=""
if [ -z "$path_to_remove" ]; then
echo "${PATH}"
return
fi
local paths
IFS=: paths=($PATH)
for path in "${paths[@]}"; do
path="$(expand_path "$path" || true)"
if [ -n "$path" ] && [ "$path" != "$path_to_remove" ]; then
result="${result}${path}:"
fi
done
echo "${result%:}"
}
RBENV_VERSION="$(rbenv-version-name)"
RBENV_COMMAND="$1"
if [ -z "$RBENV_COMMAND" ]; then
rbenv-help --usage which >&2
exit 1
fi
if [ "$RBENV_VERSION" = "system" ]; then
PATH="$(remove_from_path "${RBENV_ROOT}/shims")"
RBENV_COMMAND_PATH="$(command -v "$RBENV_COMMAND" || true)"
else
RBENV_COMMAND_PATH="${RBENV_ROOT}/versions/${RBENV_VERSION}/bin/${RBENV_COMMAND}"
fi
for script in $(rbenv-hooks which); do
source "$script"
done
if [ -x "$RBENV_COMMAND_PATH" ]; then
echo "$RBENV_COMMAND_PATH"
else
echo "rbenv: $RBENV_COMMAND: command not found" >&2
versions="$(rbenv-whence "$RBENV_COMMAND" || true)"
if [ -n "$versions" ]; then
{ echo
echo "The \`$1' command exists in these Ruby versions:"
echo "$versions" | sed 's/^/ /g'
echo
} >&2
fi
exit 127
fi

4
plugins/.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
/*
!/.gitignore
!/version-ext-compat
!/python-build

View File

@@ -0,0 +1,20 @@
Copyright (c) 2013 Yamashita, Yuu
Copyright (c) 2012-2013 Sam Stephenson
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.

View File

@@ -0,0 +1,222 @@
# python-build
python-build is a [pyenv](https://github.com/yyuu/pyenv) plugin that
provides a `pyenv install` command to compile and install different versions
of Python on UNIX-like systems.
You can also use python-build without pyenv in environments where you need
precise control over Python version installation.
See the [list of releases](https://github.com/yyuu/pyenv/releases)
for changes in each version.
## Installation
### Installing as an pyenv plugin (recommended)
You need nothing to do since python-build is bundled with pyenv by
default.
### Installing as a standalone program (advanced)
Installing python-build as a standalone program will give you access to the
`python-build` command for precise control over Python version installation. If you
have pyenv installed, you will also be able to use the `pyenv install` command.
git clone git://github.com/yyuu/pyenv.git
cd pyenv/plugins/python-build
./install.sh
This will install python-build into `/usr/local`. If you do not have write
permission to `/usr/local`, you will need to run `sudo ./install.sh` instead.
You can install to a different prefix by setting the `PREFIX` environment
variable.
To update python-build after it has been installed, run `git pull` in your cloned
copy of the repository, then re-run the install script.
### Installing with Homebrew (for OS X users)
Mac OS X users can install python-build with the [Homebrew](http://brew.sh)
package manager. This will give you access to the `python-build` command. If you
have pyenv installed, you will also be able to use the `pyenv install` command.
*This is the recommended method of installation if you installed pyenv with
Homebrew.*
brew install pyenv
Or, if you would like to install the latest development release:
brew install --HEAD pyenv
## Usage
Before you begin, you should ensure that your build environment has the proper
system dependencies for compiling the wanted Python Version (see our [recommendations](https://github.com/yyuu/pyenv/wiki#suggested-build-environment)).
### Using `pyenv install` with pyenv
To install a Python version for use with pyenv, run `pyenv install` with
exact name of the version you want to install. For example,
pyenv install 2.7.4
Python versions will be installed into a directory of the same name under
`~/.pyenv/versions`.
To see a list of all available Python versions, run `pyenv install --list`. You
may also tab-complete available Python versions if your pyenv installation is
properly configured.
### Using `python-build` standalone
If you have installed python-build as a standalone program, you can use the
`python-build` command to compile and install Python versions into specific
locations.
Run the `python-build` command with the exact name of the version you want to
install and the full path where you want to install it. For example,
python-build 2.7.4 ~/local/python-2.7.4
To see a list of all available Python versions, run `python-build --definitions`.
Pass the `-v` or `--verbose` flag to `python-build` as the first argument to see
what's happening under the hood.
### Custom definitions
Both `pyenv install` and `python-build` accept a path to a custom definition file
in place of a version name. Custom definitions let you develop and install
versions of Python that are not yet supported by python-build.
See the [python-build built-in definitions](https://github.com/yyuu/pyenv/tree/master/plugins/python-build/share/python-build) as a starting point for
custom definition files.
[definitions]: https://github.com/yyuu/pyenv/tree/master/plugins/python-build/share/python-build
### Special environment variables
You can set certain environment variables to control the build process.
* `TMPDIR` sets the location where python-build stores temporary files.
* `PYTHON_BUILD_BUILD_PATH` sets the location in which sources are downloaded and
built. By default, this is a subdirectory of `TMPDIR`.
* `PYTHON_BUILD_CACHE_PATH`, if set, specifies a directory to use for caching
downloaded package files.
* `PYTHON_BUILD_MIRROR_URL` overrides the default mirror URL root to one of your
choosing.
* `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from
their original source URLs instead of using a mirror.
* `PYTHON_BUILD_ROOT` overrides the default location from where build definitions
in `share/python-build/` are looked up.
* `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get
additionally searched when looking up build definitions.
* `CC` sets the path to the C compiler.
* `PYTHON_CFLAGS` lets you pass additional options to the default `CFLAGS`. Use
this to override, for instance, the `-O3` option.
* `CONFIGURE_OPTS` lets you pass additional options to `./configure`.
* `MAKE` lets you override the command to use for `make`. Useful for specifying
GNU make (`gmake`) on some systems.
* `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to `make`.
* `MAKE_INSTALL_OPTS` lets you pass additional options to `make install`.
* `PYTHON_CONFIGURE_OPTS` and `PYTHON_MAKE_OPTS` and `PYTHON_MAKE_INSTALL_OPTS` allow
you to specify configure and make options for buildling CPython. These variables
will be passed to Python only, not any dependent packages (e.g. libyaml).
### Applying patches to Python before compiling
Both `pyenv install` and `python-build` support the `--patch` (`-p`) flag that
signals that a patch from stdin should be applied to Python, Jython or PyPy
source code before the `./configure` and compilation steps.
Example usage:
```sh
# applying a single patch
$ pyenv install --patch 2.7.10 < /path/to/python.patch
# applying a patch from HTTP
$ pyenv install --patch 2.7.10 < <(curl -sSL http://git.io/python.patch)
# applying multiple patches
$ cat fix1.patch fix2.patch | pyenv install --patch 2.7.10
```
### Building with `--enable-shared`
You can build CPython with `--enable-shared` to install a version with
shared object.
If `--enabled-shared` was found in `PYTHON_CONFIGURE_OPTS` or `CONFIGURE_OPTS`,
`python-build` will automatically set `RPATH` to the pyenv's prefix directory.
This means you don't have to set `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` for
the version(s) installed with `--enable-shared`.
```sh
$ env PYTHON_CONFIGURE_OPTS="--enable-shared` pyenv install 2.7.9
```
### Checksum verification
If you have the `shasum`, `openssl`, or `sha256sum` tool installed, python-build will
automatically verify the SHA2 checksum of each downloaded package before
installing it.
Checksums are optional and specified as anchors on the package URL in each
definition. (All bundled definitions include checksums.)
### Package download mirrors
python-build will first attempt to download package files from a mirror hosted on
GitHub Pages. If a package is not available on the mirror, if the mirror
is down, or if the download is corrupt, python-build will fall back to the
official URL specified in the defintion file.
You can point python-build to another mirror by specifying the
`PYTHON_BUILD_MIRROR_URL` environment variable--useful if you'd like to run your
own local mirror, for example. Package mirror URLs are constructed by joining
this variable with the SHA2 checksum of the package file.
If you don't have an SHA2 program installed, python-build will skip the download
mirror and use official URLs instead. You can force python-build to bypass the
mirror by setting the `PYTHON_BUILD_SKIP_MIRROR` environment variable.
The official python-build download mirror is provided by
[GitHub Pages](http://yyuu.github.io/pythons/).
### Package download caching
You can instruct python-build to keep a local cache of downloaded package files
by setting the `PYTHON_BUILD_CACHE_PATH` environment variable. When set, package
files will be kept in this directory after the first successful download and
reused by subsequent invocations of `python-build` and `pyenv install`.
The `pyenv install` command defaults this path to `~/.pyenv/cache`, so in most
cases you can enable download caching simply by creating that directory.
### Keeping the build directory after installation
Both `python-build` and `pyenv install` accept the `-k` or `--keep` flag, which
tells python-build to keep the downloaded source after installation. This can be
useful if you need to use `gdb` and `memprof` with Python.
Source code will be kept in a parallel directory tree `~/.pyenv/sources` when
using `--keep` with the `pyenv install` command. You should specify the
location of the source code with the `PYTHON_BUILD_BUILD_PATH` environment
variable when using `--keep` with `python-build`.
## Getting Help
Please see the [pyenv wiki](https://github.com/yyuu/pyenv/wiki) for solutions to common problems.
[wiki]: https://github.com/yyuu/pyenv/wiki
If you can't find an answer on the wiki, open an issue on the [issue
tracker](https://github.com/yyuu/pyenv/issues). Be sure to include
the full build log for build failures.

View File

@@ -0,0 +1,275 @@
#!/usr/bin/env bash
#
# Summary: Install a Python version using python-build
#
# Usage: pyenv install [-f] [-kvp] <version>
# pyenv install [-f] [-kvp] <definition-file>
# pyenv install -l|--list
#
# -l/--list List all available versions
# -f/--force Install even if the version appears to be installed already
# -s/--skip-existing Skip if the version appears to be installed already
#
# python-build options:
#
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
# (defaults to $PYENV_ROOT/sources)
# -v/--verbose Verbose mode: print compilation status to stdout
# -p/--patch Apply a patch from stdin before building
# -g/--debug Build a debug version
#
# For detailed information on installing Python versions with
# python-build, including a list of environment variables for adjusting
# compilation, see: https://github.com/yyuu/pyenv#readme
#
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ -z "$PYENV_ROOT" ]; then
PYENV_ROOT="${HOME}/.pyenv"
fi
# Add `share/python-build/` directory from each pyenv plugin to the list of
# paths where build definitions are looked up.
shopt -s nullglob
for plugin_path in "$PYENV_ROOT"/plugins/*/share/python-build; do
PYTHON_BUILD_DEFINITIONS="${PYTHON_BUILD_DEFINITIONS}:${plugin_path}"
done
export PYTHON_BUILD_DEFINITIONS
shopt -u nullglob
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec python-build --definitions
fi
# Load shared library functions
eval "$(python-build --lib)"
usage() {
pyenv-help install 2>/dev/null
[ -z "$1" ] || exit "$1"
}
definitions() {
local query="$1"
python-build --definitions | $(type -p ggrep grep | head -1) -F "$query" || true
}
indent() {
sed 's/^/ /'
}
unset FORCE
unset SKIP_EXISTING
unset KEEP
unset VERBOSE
unset HAS_PATCH
unset DEBUG
parse_options "$@"
for option in "${OPTIONS[@]}"; do
case "$option" in
"h" | "help" )
usage 0
;;
"l" | "list" )
echo "Available versions:"
definitions | indent
exit
;;
"f" | "force" )
FORCE=true
;;
"s" | "skip-existing" )
SKIP_EXISTING=true
;;
"k" | "keep" )
[ -n "${PYENV_BUILD_ROOT}" ] || PYENV_BUILD_ROOT="${PYENV_ROOT}/sources"
;;
"v" | "verbose" )
VERBOSE="-v"
;;
"p" | "patch" )
HAS_PATCH="-p"
;;
"g" | "debug" )
DEBUG="-g"
;;
"version" )
exec python-build --version
;;
* )
usage 1 >&2
;;
esac
done
[ "${#ARGUMENTS[@]}" -le 1 ] || usage 1 >&2
unset VERSION_NAME
# The first argument contains the definition to install. If the
# argument is missing, try to install whatever local app-specific
# version is specified by pyenv. Show usage instructions if a local
# version is not specified.
DEFINITION="${ARGUMENTS[0]}"
[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)"
[ -n "$DEFINITION" ] || usage 1 >&2
# Define `before_install` and `after_install` functions that allow
# plugin hooks to register a string of code for execution before or
# after the installation process.
declare -a before_hooks after_hooks
before_install() {
local hook="$1"
before_hooks["${#before_hooks[@]}"]="$hook"
}
after_install() {
local hook="$1"
after_hooks["${#after_hooks[@]}"]="$hook"
}
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks install`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do source "$script"; done
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
# compute the installation prefix.
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
# If the installation prefix exists, prompt for confirmation unless
# the --force option was specified.
if [ -d "${PREFIX}/bin" ]; then
if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then
echo "pyenv: $PREFIX already exists" >&2
read -p "continue with installation? (y/N) "
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
elif [ -n "$SKIP_EXISTING" ]; then
# Since we know the python version is already installed, and are opting to
# not force installation of existing versions, we just `exit 0` here to
# leave things happy
exit 0
fi
fi
# If PYENV_BUILD_ROOT is set, always pass keep options to python-build.
if [ -n "${PYENV_BUILD_ROOT}" ]; then
export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}"
KEEP="-k"
fi
# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory
# exists and the variable is not already set.
if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
fi
if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then
case "${VERSION_NAME}" in
[23]"."* )
# Default PYENV_VERSION to the friendly Python version. (The
# CPython installer requires an existing Python installation to run. An
# unsatisfied local .python-version file can cause the installer to
# fail.)
for version_info in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do
# Anaconda's `curl` doesn't work on platfrom where `/etc/pki/tls/certs/ca-bundle.crt` isn't available (e.g. Debian)
for version in $(pyenv-whence "python${version_info}" 2>/dev/null || true); do
if [[ "${version}" != "anaconda"* ]] && [[ "${version}" != "miniconda"* ]]; then
PYENV_BOOTSTRAP_VERSION="${version}"
break 2
fi
done
done
;;
"pypy-"*"-src" | "pypy3-"*"-src" )
# PyPy/PyPy3 requires existing Python 2.7 to build
if [ -n "${PYENV_RPYTHON_VERSION}" ]; then
PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}"
else
for version in $(pyenv-versions --bare | sort -r); do
if [[ "${version}" == "2.7"* ]]; then
PYENV_BOOTSTRAP_VERSION="$version"
break
fi
done
fi
if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then
if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c 'import curses' 1>/dev/null 2>&1; then
echo "pyenv-install: $VERSION_NAME: PyPy requires \`curses' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2
exit 1
fi
else
echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2
exit 1
fi
;;
esac
fi
if [ -n "${PYENV_BOOTSTRAP_VERSION}" ]; then
export PYENV_VERSION="${PYENV_BOOTSTRAP_VERSION}"
fi
# Execute `before_install` hooks.
for hook in "${before_hooks[@]}"; do eval "$hook"; done
# Plan cleanup on unsuccessful installation.
cleanup() {
[ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX"
}
trap cleanup SIGINT
# Invoke `python-build` and record the exit status in $STATUS.
STATUS=0
python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?"
# Display a more helpful message if the definition wasn't found.
if [ "$STATUS" == "2" ]; then
{ candidates="$(definitions "$DEFINITION")"
here="$(dirname "${0%/*}")/../.."
if [ -n "$candidates" ]; then
echo
echo "The following versions contain \`$DEFINITION' in the name:"
echo "$candidates" | indent
fi
echo
echo "See all available versions with \`pyenv install --list'."
echo
echo -n "If the version you need is missing, try upgrading pyenv"
if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then
printf ":\n\n"
echo " brew update && brew upgrade pyenv"
elif [ -d "${here}/.git" ]; then
printf ":\n\n"
echo " cd ${here} && git pull && cd -"
else
printf ".\n"
fi
} >&2
fi
# Execute `after_install` hooks.
for hook in "${after_hooks[@]}"; do eval "$hook"; done
# Run `pyenv-rehash` after a successful installation.
if [ "$STATUS" == "0" ]; then
pyenv-rehash
else
cleanup
fi
exit "$STATUS"

View File

@@ -0,0 +1,89 @@
#!/usr/bin/env bash
#
# Summary: Uninstall a specific Python version
#
# Usage: pyenv uninstall [-f|--force] <version>
#
# -f Attempt to remove the specified version without prompting
# for confirmation. If the version does not exist, do not
# display an error message.
#
# See `pyenv versions` for a complete list of installed versions.
#
set -e
# Provide pyenv completions
if [ "$1" = "--complete" ]; then
exec pyenv versions --bare
fi
usage() {
pyenv-help uninstall 2>/dev/null
[ -z "$1" ] || exit "$1"
}
if [ -z "$PYENV_ROOT" ]; then
PYENV_ROOT="${HOME}/.pyenv"
fi
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
usage 0
fi
unset FORCE
if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then
FORCE=true
shift
fi
[ "$#" -eq 1 ] || usage 1 >&2
DEFINITION="$1"
case "$DEFINITION" in
"" | -* )
usage 1 >&2
;;
esac
declare -a before_hooks after_hooks
before_uninstall() {
local hook="$1"
before_hooks["${#before_hooks[@]}"]="$hook"
}
after_uninstall() {
local hook="$1"
after_hooks["${#after_hooks[@]}"]="$hook"
}
OLDIFS="$IFS"
IFS=$'\n' scripts=(`pyenv-hooks uninstall`)
IFS="$OLDIFS"
for script in "${scripts[@]}"; do source "$script"; done
VERSION_NAME="${DEFINITION##*/}"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
if [ -z "$FORCE" ]; then
if [ ! -d "$PREFIX" ]; then
echo "pyenv: version \`$VERSION_NAME' not installed" >&2
exit 1
fi
read -p "pyenv: remove $PREFIX? "
case "$REPLY" in
y* | Y* ) ;;
* ) exit 1 ;;
esac
fi
for hook in "${before_hooks[@]}"; do eval "$hook"; done
if [ -d "$PREFIX" ]; then
rm -rf "$PREFIX"
pyenv-rehash
fi
for hook in "${after_hooks[@]}"; do eval "$hook"; done

File diff suppressed because it is too large Load Diff

26
plugins/python-build/install.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/sh
# Usage: PREFIX=/usr/local ./install.sh
#
# Installs python-build under $PREFIX.
set -e
cd "$(dirname "$0")"
if [ -z "${PREFIX}" ]; then
PREFIX="/usr/local"
fi
BIN_PATH="${PREFIX}/bin"
SHARE_PATH="${PREFIX}/share/python-build"
mkdir -p "$BIN_PATH" "$SHARE_PATH"
install -p bin/* "$BIN_PATH"
for share in share/python-build/*; do
if [ -d "$share" ]; then
cp -RPp "$share" "$SHARE_PATH"
else
install -p -m 0644 "$share" "$SHARE_PATH"
fi
done

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.1.3" "http://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz#1bcb5bb587948bc38f36db60e15c376009c56c66570e563a08a82bf7f227afb9" ldflags_dirs standard verify_py21
#install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
#install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.2.3" "http://www.python.org/ftp/python/2.2.3/Python-2.2.3.tgz#a8f92e6b89d47359fff0d1fbfe47f104afc77fd1cd5143e7332758b7bc100188" ldflags_dirs standard verify_py22
#install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
#install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.3.7" "http://python.org/ftp/python/2.3.7/Python-2.3.7.tgz#969a9891dce9f50b13e54f9890acaf2be66715a5895bf9b11111f320c205b90e" ldflags_dirs standard verify_py23
#install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#13951be6711438073fbe50843e7f141f" python
#install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4" "http://python.org/ftp/python/2.4/Python-2.4.tgz#ff746de0fae8691c082414b42a2bb172da8797e6e8ff66c9a39d2e452f7034e9" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4.1" "http://python.org/ftp/python/2.4.1/Python-2.4.1.tgz#f449c3b167389324c525ad99d02376c518ac11e163dbbbc13bc88a5c7101fd00" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4.2" "http://python.org/ftp/python/2.4.2/Python-2.4.2.tgz#2653e1846e87fd9b3ee287fefc965c80c54646548b4913a22265b0dd54493adf" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4.3" "http://python.org/ftp/python/2.4.3/Python-2.4.3.tgz#985a413932f5e31e6280b37da6b285a3a0b2748c6786643989ed9b23de97e2d5" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4.4" "http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz#92be6e20cbc3111d9dd0c016d72ef7914c23b879dc52df7ba28df97afbf12e2e" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4.5" "http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz#6ae6f67a388a7f70ed3a20eebab5aae995ee433089d1f1724095c62f4b7389a1" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.4.6" "http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz#b03f269e826927f05c966cf4f4414f3c93ee2314960859e7f8375e24e82f8b02" ldflags_dirs standard verify_py24
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5" "http://python.org/ftp/python/2.5/Python-2.5.tgz#d7bbf42e36003c6065cd19f3e67d283521858515ee923220f654131cebe1d8f2" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5.1" "http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz#1f5caee846049ca30d996f9403eefdb996295c4af664867e35dcc5eb36e4e7e8" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5.2" "http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz#834afe8a88adaf623b05ac5dd6700dd5bb5d0d5553fc74ad529359a3496e4ae3" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5.3" "http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz#c3fee607d20a77dfb72ea2e627eb4d95d25c735603435abde62c57015a0445bd" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5.4" "http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz#3d3b205611ee503a38a9433d5645a571668420bb219242c7f51af85f05664da6" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5.5" "http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz#03be1019c4fe93daeb53ba9e4294bf22a8ed4cb854cbd57e24e16f6bf63e2392" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,5 @@
#require_gcc
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.5.6" "http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz#c2e4377597241b1065677d23327c04d0f41945d370c61a491cc88be367234c5d" ldflags_dirs standard verify_py25
install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.6.6" "http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz#372f66db46d773214e4619df1794a26449158f626138d4d2141a64c2f017fae1" ldflags_dirs standard verify_py26 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.6.7" "http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz#a8093eace4cfd3e06b05f0deb5d765e3c6cec65908048640a8cadd7a948b3826" ldflags_dirs standard verify_py26 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.6.8" "http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz#5bf02a75ffa2fcaa5a3cabb8201998519b045541975622316888ea468d9512f7" ldflags_dirs standard verify_py26 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.6.9" "http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" ldflags_dirs standard verify_py26 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7" "http://python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_hg "Python-2.7-dev" "https://hg.python.org/cpython" "2.7" standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.1" "http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz#eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz#82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.2" "http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz#1d54b7096c17902c3f40ffce7e5b84e0072d0144024184fff184a84d563abbb3" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.3" "http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz#d4c20f2b5faf95999fd5fecb3f7d32071b0820516224a6d2b72932ab47a1cb8e" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.4" "http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz#98c5eb9c8e65effcc0122112ba17a0bce880aa23ecb560af56b55eb55632b81a" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.5" "http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz#8e1b5fa87b91835afb376a9c0d319d41feca07ffebc0288d97ab08d64f48afbf" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.6" "http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz#99c6860b70977befa1590029fae092ddb18db1d69ae67e8b9385b66ed104ba58" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.7" "https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz#7f49c0a6705ad89d925181e27d0aaa025ee4731ce0de64776c722216c3e66c42" ldflags_dirs standard verify_py27 ensurepip

View File

@@ -0,0 +1,4 @@
#require_gcc
install_package "openssl-1.0.1q" "https://www.openssl.org/source/openssl-1.0.1q.tar.gz#b3658b84e9ea606a5ded3c972a5517cd785282e7ea86b20c78aa4b773a047fb7" mac_openssl --if has_broken_mac_openssl
install_package "readline-6.3" "http://ftpmirror.gnu.org/readline/readline-6.3.tar.gz#56ba6071b9462f980c5a72ab0023893b65ba6debb4eeb475d7a563dc65cafd43" standard --if has_broken_mac_readline
install_package "Python-2.7.8" "https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz#74d70b914da4487aa1d97222b29e9554d042f825f26cb2b93abd20fdda56b557" ldflags_dirs standard verify_py27 ensurepip

Some files were not shown because too many files have changed in this diff Show More