mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-11 04:53:47 -05:00
Compare commits
22 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86fbc6861d | ||
|
|
2a3b286b71 | ||
|
|
86497f72c2 | ||
|
|
cf81e5a0c4 | ||
|
|
31f1732fa2 | ||
|
|
2c32a6be15 | ||
|
|
cd2c26ef71 | ||
|
|
14feb59960 | ||
|
|
5a96d9f2cd | ||
|
|
ae3a61d8dd | ||
|
|
098227f26c | ||
|
|
a56bcf1015 | ||
|
|
be595ededa | ||
|
|
e394cb898d | ||
|
|
5e8719ab0e | ||
|
|
ae4d48932f | ||
|
|
a8f5fc13ee | ||
|
|
c3e29f08b3 | ||
|
|
5b009e8767 | ||
|
|
e49794521e | ||
|
|
3e0f5e798c | ||
|
|
0f2d659732 |
@@ -32,7 +32,7 @@ env:
|
||||
before_install:
|
||||
- date +%Y-%m-%dT%H:%M:%S
|
||||
|
||||
install: git clone --depth 1 https://github.com/bats-core/bats-core.git bats
|
||||
install: git clone --depth 1 --branch v1.2.0 https://github.com/bats-core/bats-core.git bats
|
||||
|
||||
# Default for auto-generated jobs.
|
||||
script: make test-build
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
## Version History
|
||||
|
||||
## 1.2.19
|
||||
|
||||
* python-build: Add CPython 3.8.2 (#1612)
|
||||
* python-build: Add CPython 2.7.18 (#1593)
|
||||
* python-build: Add CPython 3.10-dev (#1619)
|
||||
* python-build: Add anaconda3-2020.02 (#1584)
|
||||
* python-build: Add stackless 3.7.5 (#1589)
|
||||
|
||||
## 1.2.18
|
||||
|
||||
* python-build: Update download URLs for old OpenSSL releases (#1578)
|
||||
|
||||
2
Makefile
2
Makefile
@@ -22,4 +22,4 @@ test-build:
|
||||
$(PYTHON_BUILD_TEST_PREFIX)/bin/pip -V
|
||||
|
||||
bats:
|
||||
git clone --depth 1 https://github.com/bats-core/bats-core.git bats
|
||||
git clone --depth 1 --branch v1.2.0 https://github.com/bats-core/bats-core.git bats
|
||||
|
||||
88
README.md
88
README.md
@@ -167,7 +167,14 @@ We'd recommend to install pyenv-virtualenv as well if you have some plan to play
|
||||
|
||||
## Installation
|
||||
|
||||
If you're on macOS, consider [installing with Homebrew](#homebrew-on-macos).
|
||||
### Homebrew on macOS
|
||||
|
||||
1. Consider installing with [Homebrew](https://brew.sh)
|
||||
```sh
|
||||
brew update
|
||||
brew install pyenv
|
||||
```
|
||||
2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #3 ("Add `pyenv init` to your shell to enable shims and autocompletion").
|
||||
|
||||
If you're on Windows, consider using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork. (`pyenv` does not work on windows outside the Windows Subsystem for Linux)
|
||||
|
||||
@@ -185,26 +192,44 @@ easy to fork and contribute any changes back upstream.
|
||||
1. **Check out pyenv where you want it installed.**
|
||||
A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else).
|
||||
|
||||
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
|
||||
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
|
||||
|
||||
|
||||
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.
|
||||
|
||||
```sh
|
||||
$ 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`.
|
||||
- **Ubuntu and Fedora note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
|
||||
- For **bash**:
|
||||
~~~ bash
|
||||
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
|
||||
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
|
||||
~~~
|
||||
|
||||
- For **Ubuntu Desktop**:
|
||||
~~~ bash
|
||||
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
|
||||
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
|
||||
~~~
|
||||
|
||||
- For **Zsh**:
|
||||
~~~ zsh
|
||||
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
|
||||
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
|
||||
~~~
|
||||
|
||||
- For **Fish shell**:
|
||||
~~~ fish
|
||||
set -Ux PYENV_ROOT $HOME/.pyenv
|
||||
set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths
|
||||
~~~
|
||||
|
||||
- **Proxy note**: If you use a proxy, export `http_proxy` and `HTTPS_PROXY` too.
|
||||
|
||||
3. **Add `pyenv init` to your shell** to enable shims and autocompletion.
|
||||
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 -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
|
||||
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
|
||||
```
|
||||
- **Zsh note**: Modify your `~/.zshrc` file instead of `~/.bash_profile`.
|
||||
- **fish note**: Use `pyenv init - | source` instead of `eval (pyenv init -)`.
|
||||
@@ -219,17 +244,15 @@ easy to fork and contribute any changes back upstream.
|
||||
4. **Restart your shell so the path changes take effect.**
|
||||
You can now begin using pyenv.
|
||||
```sh
|
||||
$ exec "$SHELL"
|
||||
exec "$SHELL"
|
||||
```
|
||||
|
||||
5. **Install Python build dependencies** before attempting to install a new Python version. The
|
||||
[pyenv wiki](https://github.com/pyenv/pyenv/wiki) provides suggested installation packages
|
||||
and commands for various operating systems.
|
||||
5. [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version.
|
||||
|
||||
6. **Install Python versions into `$(pyenv root)/versions`.**
|
||||
For example, to download and install Python 2.7.8, run:
|
||||
```sh
|
||||
$ pyenv install 2.7.8
|
||||
pyenv install 2.7.8
|
||||
```
|
||||
**NOTE:** If you need to pass configure option to build, please use
|
||||
```CONFIGURE_OPTS``` environment variable.
|
||||
@@ -244,24 +267,28 @@ easy to fork and contribute any changes back upstream.
|
||||
|
||||
#### Upgrading
|
||||
|
||||
If you've installed pyenv using homebrew, upgrade using:
|
||||
```sh
|
||||
brew upgrade pyenv
|
||||
```
|
||||
|
||||
If you've installed pyenv using the instructions above, you can
|
||||
upgrade your installation at any time using git.
|
||||
|
||||
To upgrade to the latest development version of pyenv, use `git pull`:
|
||||
|
||||
```sh
|
||||
$ cd $(pyenv root)
|
||||
$ git pull
|
||||
cd $(pyenv root)
|
||||
git pull
|
||||
```
|
||||
|
||||
To upgrade to a specific release of pyenv, check out the corresponding tag:
|
||||
|
||||
```sh
|
||||
$ cd $(pyenv root)
|
||||
$ git fetch
|
||||
$ git tag
|
||||
v0.1.0
|
||||
$ git checkout v0.1.0
|
||||
cd $(pyenv root)
|
||||
git fetch
|
||||
git tag
|
||||
git checkout v0.1.0
|
||||
```
|
||||
|
||||
### Uninstalling pyenv
|
||||
@@ -288,21 +315,6 @@ uninstall from the system.
|
||||
|
||||
brew uninstall pyenv
|
||||
|
||||
### Homebrew on macOS
|
||||
|
||||
You can also install pyenv using the [Homebrew](https://brew.sh)
|
||||
package manager for macOS.
|
||||
|
||||
$ brew update
|
||||
$ brew install pyenv
|
||||
|
||||
|
||||
To upgrade pyenv in the future, use `upgrade` instead of `install`.
|
||||
|
||||
#### Post-installation
|
||||
|
||||
Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout) above, starting with #3 ("Add `pyenv init` to your shell to enable shims and autocompletion").
|
||||
|
||||
### Advanced Configuration
|
||||
|
||||
Skip this section unless you must know what every line in your shell
|
||||
@@ -381,8 +393,8 @@ and easy to understand, even if you're not a shell hacker.
|
||||
|
||||
Tests are executed using [Bats](https://github.com/bats-core/bats-core):
|
||||
|
||||
$ bats test
|
||||
$ bats/test/<file>.bats
|
||||
bats test
|
||||
bats/test/<file>.bats
|
||||
|
||||
Please feel free to submit pull requests and file bugs on the [issue
|
||||
tracker](https://github.com/pyenv/pyenv/issues).
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
version="1.2.18"
|
||||
version="1.2.19"
|
||||
git_revision=""
|
||||
|
||||
if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then
|
||||
|
||||
@@ -69,7 +69,7 @@ if [ -z "$FORCE" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read -p "pyenv: remove $PREFIX? "
|
||||
read -p "pyenv: remove $PREFIX? [y|N]"
|
||||
case "$REPLY" in
|
||||
y | Y | yes | YES ) ;;
|
||||
* ) exit 1 ;;
|
||||
@@ -81,6 +81,7 @@ for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
||||
if [ -d "$PREFIX" ]; then
|
||||
rm -rf "$PREFIX"
|
||||
pyenv-rehash
|
||||
echo "pyenv: $VERSION_NAME uninstalled"
|
||||
fi
|
||||
|
||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
@@ -791,14 +791,6 @@ build_package_standard_install() {
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_standard_install_with_bundled_gems() {
|
||||
{ "$MAKE" update-gems
|
||||
"$MAKE" extract-gems
|
||||
} >&4 2>&1
|
||||
|
||||
build_package_standard_install "$@"
|
||||
}
|
||||
|
||||
# Backward Compatibility for standard function
|
||||
build_package_standard() {
|
||||
build_package_standard_build "$@"
|
||||
@@ -810,13 +802,6 @@ build_package_autoconf() {
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_ruby() {
|
||||
local package_name="$1"
|
||||
|
||||
{ "$RUBY_BIN" setup.rb
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_python() {
|
||||
local package_name="$1"
|
||||
|
||||
@@ -824,132 +809,9 @@ build_package_python() {
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_ree_installer() {
|
||||
build_package_auto_tcltk
|
||||
|
||||
local options=""
|
||||
is_mac && options="--no-tcmalloc"
|
||||
|
||||
local option
|
||||
for option in $RUBY_CONFIGURE_OPTS ${RUBY_CONFIGURE_OPTS_ARRAY[@]}; do
|
||||
options="$options -c $option"
|
||||
done
|
||||
|
||||
# Work around install_useful_libraries crash with --dont-install-useful-gems
|
||||
mkdir -p "$PREFIX_PATH/lib/ruby/gems/1.8/gems"
|
||||
|
||||
{ ./installer --auto "$PREFIX_PATH" --dont-install-useful-gems $options $CONFIGURE_OPTS
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_rbx() {
|
||||
local package_name="$1"
|
||||
|
||||
{ [ ! -e "Gemfile" ] || bundle --path=vendor/bundle
|
||||
if [ -n "$RUBY_BUILD_CACHE_PATH" ]; then
|
||||
mkdir -p vendor
|
||||
ln -s "$RUBY_BUILD_CACHE_PATH" vendor/prebuilt
|
||||
fi
|
||||
|
||||
local opt
|
||||
local -a configure_opts
|
||||
for opt in "${RUBY_CONFIGURE_OPTS_ARRAY[@]}"; do
|
||||
if [[ $opt == --with-openssl-dir=* ]]; then
|
||||
local openssl_dir="${opt#*=}"
|
||||
configure_opts[${#configure_opts[@]}]="--with-lib-dir=${openssl_dir}/lib"
|
||||
configure_opts[${#configure_opts[@]}]="--with-include-dir=${openssl_dir}/include"
|
||||
else
|
||||
configure_opts[${#configure_opts[@]}]="$opt"
|
||||
fi
|
||||
done
|
||||
|
||||
RUBYOPT="-rrubygems $RUBYOPT" ./configure --prefix="$PREFIX_PATH" $RUBY_CONFIGURE_OPTS "${configure_opts[@]}"
|
||||
rake install
|
||||
fix_rbx_gem_binstubs "$PREFIX_PATH"
|
||||
fix_rbx_irb "$PREFIX_PATH"
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_mruby() {
|
||||
local package_name="$1"
|
||||
|
||||
{ rake
|
||||
mkdir -p "$PREFIX_PATH"
|
||||
cp -fR build/host/* "$PREFIX_PATH"
|
||||
cd "$PREFIX_PATH/bin"
|
||||
ln -fs mruby ruby
|
||||
ln -fs mirb irb
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_maglev() {
|
||||
build_package_copy
|
||||
|
||||
{ cd "${PREFIX_PATH}"
|
||||
./install.sh
|
||||
cd "${PREFIX_PATH}/bin"
|
||||
echo "Creating symlink for ruby*"
|
||||
ln -fs maglev-ruby ruby
|
||||
echo "Creating symlink for irb*"
|
||||
ln -fs maglev-irb irb
|
||||
} >&4 2>&1
|
||||
echo
|
||||
echo "Run 'maglev start' to start up the stone before using 'ruby' or 'irb'"
|
||||
}
|
||||
|
||||
build_package_topaz() {
|
||||
build_package_copy
|
||||
{ cd "${PREFIX_PATH}/bin"
|
||||
echo "Creating symlink for ruby*"
|
||||
ln -fs topaz ruby
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
topaz_architecture() {
|
||||
case "$(uname -s)" in
|
||||
"Darwin") echo "osx64";;
|
||||
"Linux") [[ "$(uname -m)" = "x86_64" ]] && echo "linux64" || echo "linux32";;
|
||||
*)
|
||||
echo "no nightly builds available" >&2
|
||||
exit 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
build_package_jruby() {
|
||||
build_package_copy
|
||||
cd "${PREFIX_PATH}/bin"
|
||||
ln -fs jruby ruby
|
||||
chmod +x ruby
|
||||
install_jruby_launcher
|
||||
remove_windows_files
|
||||
fix_jruby_shebangs
|
||||
}
|
||||
|
||||
install_jruby_launcher() {
|
||||
cd "${PREFIX_PATH}/bin"
|
||||
{ ./ruby gem install jruby-launcher
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
fix_jruby_shebangs() {
|
||||
for file in "${PREFIX_PATH}/bin"/*; do
|
||||
if [ "$(head -c 20 "$file")" = "#!/usr/bin/env jruby" ]; then
|
||||
sed -i.bak "1 s:.*:#\!${PREFIX_PATH}\/bin\/jruby:" "$file"
|
||||
rm "$file".bak
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
build_package_truffleruby() {
|
||||
build_package_copy
|
||||
|
||||
cd "${PREFIX_PATH}"
|
||||
./lib/truffle/post_install_hook.sh
|
||||
}
|
||||
|
||||
remove_windows_files() {
|
||||
cd "$PREFIX_PATH"
|
||||
rm -f bin/*.exe bin/*.dll bin/*.bat bin/jruby.sh
|
||||
rm -f bin/*.exe bin/*.dll bin/*.bat
|
||||
}
|
||||
|
||||
build_package_jython() {
|
||||
@@ -1183,37 +1045,10 @@ cleanup_builtin_patches() {
|
||||
}
|
||||
|
||||
fix_directory_permissions() {
|
||||
# Ensure installed directories are not world-writable to avoid Bundler warnings
|
||||
# Ensure installed directories are not world-writable
|
||||
find "$PREFIX_PATH" -type d \( -perm -020 -o -perm -002 \) -exec chmod go-w {} \;
|
||||
}
|
||||
|
||||
fix_rbx_gem_binstubs() {
|
||||
local prefix="$1"
|
||||
local gemdir="${prefix}/gems/bin"
|
||||
local bindir="${prefix}/bin"
|
||||
local file binstub
|
||||
# Symlink Rubinius' `gems/bin/` into `bin/`
|
||||
if [ -d "$gemdir" ] && [ ! -L "$gemdir" ]; then
|
||||
for file in "$gemdir"/*; do
|
||||
binstub="${bindir}/${file##*/}"
|
||||
rm -f "$binstub"
|
||||
{ echo "#!${bindir}/ruby"
|
||||
grep -v '^#!' "$file"
|
||||
} > "$binstub"
|
||||
chmod +x "$binstub"
|
||||
done
|
||||
rm -rf "$gemdir"
|
||||
ln -s ../bin "$gemdir"
|
||||
fi
|
||||
}
|
||||
|
||||
fix_rbx_irb() {
|
||||
local prefix="$1"
|
||||
"${prefix}/bin/irb" --version &>/dev/null ||
|
||||
"${prefix}/bin/gem" install rubysl-tracer -v '~> 2.0' --no-rdoc --no-ri &>/dev/null ||
|
||||
true
|
||||
}
|
||||
|
||||
require_java7() {
|
||||
local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -1)"
|
||||
if [[ $version != *[789]* ]]; then
|
||||
@@ -1682,36 +1517,6 @@ build_package_auto_tcltk() {
|
||||
fi
|
||||
}
|
||||
|
||||
rake() {
|
||||
if [ -e "./Gemfile" ]; then
|
||||
bundle exec rake "$@"
|
||||
else
|
||||
isolated_gem_dependency "rake --version" rake -v '~> 10.1.0'
|
||||
command rake "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
bundle() {
|
||||
isolated_gem_dependency "bundle --version" bundler -v '~> 1.3.5'
|
||||
command bundle "$@"
|
||||
}
|
||||
|
||||
isolated_gem_dependency() {
|
||||
set +E
|
||||
( command $1 &>/dev/null ) || {
|
||||
set -E
|
||||
shift 1
|
||||
isolated_gem_install "$@"
|
||||
}
|
||||
set -E
|
||||
}
|
||||
|
||||
isolated_gem_install() {
|
||||
export GEM_HOME="${PWD}/.gem"
|
||||
export PATH="${GEM_HOME}/bin:${PATH}"
|
||||
gem install "$@"
|
||||
}
|
||||
|
||||
apply_python_patch() {
|
||||
local patchfile
|
||||
case "$1" in
|
||||
@@ -1917,6 +1722,11 @@ build_package_verify_py39() {
|
||||
build_package_verify_py38 "$1" "${2:-3.9}"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.10.x
|
||||
build_package_verify_py310() {
|
||||
build_package_verify_py39 "$1" "${2:-3.10}"
|
||||
}
|
||||
|
||||
# Copy Tools/gdb/libpython.py to pythonX.Y-gdb.py (#1190)
|
||||
build_package_copy_python_gdb() {
|
||||
if [ -e "$BUILD_PATH/$1/Tools/gdb/libpython.py" ]; then
|
||||
@@ -2108,19 +1918,6 @@ if [ -n "$noexec" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
## Apply following work around, if gcc is not installed.
|
||||
#if [ -z "$(locate_gcc)" ]; then
|
||||
# # Work around warnings building Ruby 2.0 on Clang 2.x:
|
||||
# # pass -Wno-error=shorten-64-to-32 if the compiler accepts it.
|
||||
# #
|
||||
# # When we set CFLAGS, Ruby won't apply its default flags, though. Since clang
|
||||
# # builds 1.9.x and 2.x only, where -O3 is default, we can safely set that flag.
|
||||
# # Ensure it's the first flag since later flags take precedence.
|
||||
# if "${CC:-cc}" -x c /dev/null -E -Wno-error=shorten-64-to-32 &>/dev/null; then
|
||||
# RUBY_CFLAGS="-O3 -Wno-error=shorten-64-to-32 $RUBY_CFLAGS"
|
||||
# fi
|
||||
#fi
|
||||
|
||||
if [ -z "$MAKE" ]; then
|
||||
if [ "FreeBSD" = "$(uname -s)" ]; then
|
||||
if [ "$(echo $1 | sed 's/-.*$//')" = "jruby" ]; then
|
||||
|
||||
8
plugins/python-build/share/python-build/2.7.18
Normal file
8
plugins/python-build/share/python-build/2.7.18
Normal file
@@ -0,0 +1,8 @@
|
||||
#require_gcc
|
||||
install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz#b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz#da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip
|
||||
fi
|
||||
6
plugins/python-build/share/python-build/3.10-dev
Normal file
6
plugins/python-build/share/python-build/3.10-dev
Normal file
@@ -0,0 +1,6 @@
|
||||
#require_gcc
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_git "Python-3.10-dev" "https://github.com/python/cpython" master standard verify_py310 copy_python_gdb ensurepip
|
||||
@@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.9.0a5" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tar.xz#3260e1587a4ec22081e409f701b0db5f76fab2d447fbaf0e5ddc1ce3a932f06e" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip
|
||||
install_package "Python-3.8.3" "https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tar.xz#dfab5ec723c218082fe3d5d7ae17ecbdebffa9a1aea4d64aa3a2ecdd2e795864" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.9.0a5" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tgz#6fb638f5f115bba670e0aa3a609837c45aa9b6582ea4cb1b125e9676fbefc2de" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip
|
||||
install_package "Python-3.8.3" "https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz#6af6d4d2e010f9655518d0fc6738c7ff7069f10a4d2fbd55509e467f092a8b90" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip
|
||||
fi
|
||||
@@ -3,4 +3,4 @@ prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_git "Python-3.9-dev" "https://github.com/python/cpython" master standard verify_py39 copy_python_gdb ensurepip
|
||||
install_git "Python-3.9-dev" "https://github.com/python/cpython" 3.9 standard verify_py39 copy_python_gdb ensurepip
|
||||
|
||||
10
plugins/python-build/share/python-build/3.9.0b3
Normal file
10
plugins/python-build/share/python-build/3.9.0b3
Normal file
@@ -0,0 +1,10 @@
|
||||
#require_gcc
|
||||
prefer_openssl11
|
||||
export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1
|
||||
install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
if has_tar_xz_support; then
|
||||
install_package "Python-3.9.0b3" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0b3.tar.xz#af1d09f8f59d1329273c2970e3156e2f9949e5cd9c408264eba3ca84213c957f" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip
|
||||
else
|
||||
install_package "Python-3.9.0b3" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0b3.tgz#d000aed311f4330fd5353247a1b76479d1851e6a6ccaeeba3f99256c9b449932" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip
|
||||
fi
|
||||
19
plugins/python-build/share/python-build/anaconda3-2020.02
Normal file
19
plugins/python-build/share/python-build/anaconda3-2020.02
Normal file
@@ -0,0 +1,19 @@
|
||||
case "$(anaconda_architecture 2>/dev/null || true)" in
|
||||
"Linux-ppc64le" )
|
||||
install_script "Anaconda3-2020.02-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2020.02-Linux-ppc64le.sh#d6d1827a38b988cbbe714d6e0357c9e251c84641a0c70cda51861ed9abb38804" "anaconda" verify_py37
|
||||
;;
|
||||
"Linux-x86_64" )
|
||||
install_script "Anaconda3-2020.02-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.02-Linux-x86_64.sh#2b9f088b2022edb474915d9f69a803d6449d5fdb4c303041f60ac4aefcc208bb" "anaconda" verify_py37
|
||||
;;
|
||||
"MacOSX-x86_64" )
|
||||
install_script "Anaconda3-2020.02-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.02-MacOSX-x86_64.sh#d237e6c976eb9c58368ca156a51bd913d63a3b5fea32689342733c99d14b6f2e" "anaconda" verify_py37
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of Anaconda3 is not available for $(anaconda_architecture 2>/dev/null || true)."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -1,5 +1,5 @@
|
||||
#require_gcc
|
||||
has_tar_xz_support \
|
||||
&& src="https://micropython.org/resources/source/micropython-1.12.tar.xz#25938e536f945c706f685f611e048acbca765b0380454dac88132803a5f75790" \
|
||||
|| src="https://github.com/micropython/micropython/releases/download/v1.12/micropython-1.12.tar.gz#be2041924496f49b580f06c2d328c7757bbc7b62408abb11841ebeb87302c575"
|
||||
&& src="https://micropython.org/resources/source/micropython-1.12.tar.xz#181bfe82ba310a3f91540ee70d373f247141db3f9de8082fb189145df085d1b4" \
|
||||
|| src="https://github.com/micropython/micropython/releases/download/v1.12/micropython-1.12.tar.gz#98fd02366bca23a61c77bbf2b999a45cfc237132db66b5b0874378a5446d81ba"
|
||||
install_package micropython-1.12 "$src" micropython
|
||||
|
||||
39
plugins/python-build/share/python-build/pypy2.7-7.3.1
Normal file
39
plugins/python-build/share/python-build/pypy2.7-7.3.1
Normal file
@@ -0,0 +1,39 @@
|
||||
VERSION='7.3.1'
|
||||
PYVER='2.7'
|
||||
|
||||
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||
"linux" )
|
||||
install_package "pypy${PYVER}-v${VERSION}-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#cd155d06cd0956d9de4a16e8a6bdf0722cb45b5bc4bbf805825d393ebd6690ad" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
"linux64" )
|
||||
install_package "pypy${PYVER}-v${VERSION}-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#be74886547df7bf7094096a11fc0a48496779d0d1b71901797b0c816f92caca3" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
"linux-aarch64" )
|
||||
install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#094f23ab262e666d8740bf27459a6b1215a628dad9b6c2a88f1ed5c793fab267" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
"osx64" )
|
||||
if require_osx_version "10.13"; then
|
||||
install_package "pypy${PYVER}-v${VERSION}-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#dfd4651243441d2f8f1c348e9ecc09848642d0c31bb323aa8ac320e5b9f232f0" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
else
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13."
|
||||
echo "try 'pypy${PYVER}-${VERSION}-src' to build from source."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"win32" )
|
||||
install_zip "pypy${PYVER}-v${VERSION}-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-win32.zip#e3c0dfb385d9825dd7723f26576d55d43ed92f1178f2399ab39e9fa11621a47b" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||
echo "try 'pypy${PYVER}-${VERSION}-src' to build from source."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,4 @@
|
||||
#require_gcc
|
||||
prefer_openssl11
|
||||
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "pypy2.7-v7.3.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.1-src.tar.bz2#fa3771514c8a354969be9bd3b26d65a489c30e28f91d350e4ad2f4081a9c9321" "pypy_builder" verify_py27 ensurepip
|
||||
39
plugins/python-build/share/python-build/pypy3.6-7.3.1
Normal file
39
plugins/python-build/share/python-build/pypy3.6-7.3.1
Normal file
@@ -0,0 +1,39 @@
|
||||
VERSION='7.3.1'
|
||||
PYVER='3.6'
|
||||
|
||||
case "$(pypy_architecture 2>/dev/null || true)" in
|
||||
"linux" )
|
||||
install_package "pypy${PYVER}-v${VERSION}-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#2e7a818c67f3ac0708e4d8cdf1961f30cf9586b3f3ca2f215d93437c5ea4567b" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
"linux64" )
|
||||
install_package "pypy${PYVER}-v${VERSION}-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#f67cf1664a336a3e939b58b3cabfe47d893356bdc01f2e17bc912aaa6605db12" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
"linux-aarch64" )
|
||||
install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#0069bc3c1570b935f1687f5e128cf050cd7229309e48fad2a2bf2140d43ffcee" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
"osx64" )
|
||||
if require_osx_version "10.13"; then
|
||||
install_package "pypy${PYVER}-v${VERSION}-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#d9c1778cd1ba37e129b495ea0f35ccdd9b68f5cd9d33ef0ce24e955c16d8840b" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
else
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13."
|
||||
echo "try 'pypy${PYVER}-${VERSION}-src' to build from source."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"win32" )
|
||||
install_zip "pypy${PYVER}-v${VERSION}-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-win32.zip#752fbe8c4abee6468e5ce22af82818f821daded36faa65f3d69423f9c217007a" "pypy" "verify_py${PYVER//./}" ensurepip
|
||||
;;
|
||||
* )
|
||||
{ echo
|
||||
colorize 1 "ERROR"
|
||||
echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)."
|
||||
echo "try 'pypy${PYVER}-${VERSION}-src' to build from source."
|
||||
echo
|
||||
} >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,4 @@
|
||||
#require_gcc
|
||||
prefer_openssl11
|
||||
install_package "openssl-1.1.1f" "https://www.openssl.org/source/openssl-1.1.1f.tar.gz#186c6bfe6ecfba7a5b48c47f8a1673d0f3b0e5ba2e25602dd23b629975da3f35" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "pypy3.6-v7.3.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.1-src.tar.bz2#0c2cc3229da36c6984baee128c8ff8bb4516d69df1d73275dc4622bf249afa83" "pypy_builder" verify_py36 ensurepip
|
||||
4
plugins/python-build/share/python-build/stackless-3.7.5
Normal file
4
plugins/python-build/share/python-build/stackless-3.7.5
Normal file
@@ -0,0 +1,4 @@
|
||||
#require_gcc
|
||||
install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" mac_openssl --if has_broken_mac_openssl
|
||||
install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline
|
||||
install_package "stackless-3.7.5-slp" "https://github.com/stackless-dev/stackless/archive/v3.7.5-slp.tar.gz#e2562a8d235adc19be5451c170837f53ef916aec4cd5cd17d9e0ab1f1b875d3f" ldflags_dirs standard verify_py37 ensurepip
|
||||
@@ -49,6 +49,7 @@ OUT
|
||||
before: ${PYENV_ROOT}/versions/3.6.2
|
||||
rm -rf ${PYENV_ROOT}/versions/3.6.2
|
||||
rehashed
|
||||
pyenv: 3.6.2 uninstalled
|
||||
after.
|
||||
OUT
|
||||
|
||||
|
||||
@@ -36,18 +36,6 @@ OUT
|
||||
rm -f "${BATS_TEST_DIRNAME}/libexec/pyenv-which"
|
||||
}
|
||||
|
||||
@test "prefix for system in /" {
|
||||
mkdir -p "${BATS_TEST_DIRNAME}/libexec"
|
||||
cat >"${BATS_TEST_DIRNAME}/libexec/pyenv-which" <<OUT
|
||||
#!/bin/sh
|
||||
echo /bin/python
|
||||
OUT
|
||||
chmod +x "${BATS_TEST_DIRNAME}/libexec/pyenv-which"
|
||||
PYENV_VERSION="system" run pyenv-prefix
|
||||
assert_success "/"
|
||||
rm -f "${BATS_TEST_DIRNAME}/libexec/pyenv-which"
|
||||
}
|
||||
|
||||
@test "prefix for invalid system" {
|
||||
PATH="$(path_without python)" run pyenv-prefix system
|
||||
assert_failure "pyenv: system version not found in PATH"
|
||||
|
||||
Reference in New Issue
Block a user