mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-10 04:23:47 -05:00
Compare commits
95 Commits
v0.2.0
...
v0.4.0-201
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cc9c72747a | ||
|
|
b473f7a271 | ||
|
|
b726ace943 | ||
|
|
499edda1d7 | ||
|
|
3bfd91de51 | ||
|
|
c7e139186b | ||
|
|
7c84490649 | ||
|
|
b75ef17db7 | ||
|
|
daa12e97c6 | ||
|
|
1c5eb82e93 | ||
|
|
ff387010b3 | ||
|
|
27dd805acb | ||
|
|
5f1761645f | ||
|
|
f8c9282e8c | ||
|
|
37f46df390 | ||
|
|
4f8138c70a | ||
|
|
db3b4773bc | ||
|
|
fe04103e24 | ||
|
|
7777bb6d58 | ||
|
|
e9bcd9e0bd | ||
|
|
2cc2c22094 | ||
|
|
319000b448 | ||
|
|
b4ba76a15a | ||
|
|
3ff0785fe7 | ||
|
|
1b7d3b0502 | ||
|
|
c43711a216 | ||
|
|
3c86d811c8 | ||
|
|
d94c1d2143 | ||
|
|
3fd475e1d5 | ||
|
|
309a6cd65e | ||
|
|
924f6dc76d | ||
|
|
56a9a7cebf | ||
|
|
b8cbb18f7b | ||
|
|
27caf0ef3d | ||
|
|
b203ccbe74 | ||
|
|
cb962d5a74 | ||
|
|
539800cc3b | ||
|
|
b77ae3e0b5 | ||
|
|
dfc3f9e13c | ||
|
|
f120551ef3 | ||
|
|
b03a4cde78 | ||
|
|
71b2081a75 | ||
|
|
5fbc3ae3d5 | ||
|
|
1ce37e53c7 | ||
|
|
9ae12a7c22 | ||
|
|
b3deef5e80 | ||
|
|
28317ecb34 | ||
|
|
78efa7613d | ||
|
|
0bf26d8f1d | ||
|
|
ac70eb701c | ||
|
|
c834f241a8 | ||
|
|
aa39b392a9 | ||
|
|
907ddb614d | ||
|
|
dd0e3feae3 | ||
|
|
c24207428c | ||
|
|
8b23026d6c | ||
|
|
cc9b7aa7dd | ||
|
|
318a41d723 | ||
|
|
5a52177d15 | ||
|
|
2e8c43215d | ||
|
|
45966deb49 | ||
|
|
7aa644da5c | ||
|
|
56379532a6 | ||
|
|
9bf0755c81 | ||
|
|
f01d1d1064 | ||
|
|
e9b0ecf021 | ||
|
|
cbc6f38774 | ||
|
|
e220b76c3e | ||
|
|
8d1bf96267 | ||
|
|
e49922064d | ||
|
|
95882fce68 | ||
|
|
cc20ab3392 | ||
|
|
fe50ed29ea | ||
|
|
e9db2caace | ||
|
|
2d55aea467 | ||
|
|
521c2c3e06 | ||
|
|
0bc8d8252e | ||
|
|
80f4022891 | ||
|
|
998af2a3ab | ||
|
|
3b820e8c0c | ||
|
|
8bc19e28e0 | ||
|
|
0d0516ad05 | ||
|
|
6997026064 | ||
|
|
dd1b6502c6 | ||
|
|
d1013e82de | ||
|
|
bb2d058167 | ||
|
|
6e58c43d8a | ||
|
|
dce4eb636a | ||
|
|
c170255580 | ||
|
|
8bf0938e60 | ||
|
|
aa831836e1 | ||
|
|
0eb1520707 | ||
|
|
606346761f | ||
|
|
48e1488bc9 | ||
|
|
0259b6adfb |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,3 +1,5 @@
|
||||
/cache
|
||||
/shims
|
||||
/version
|
||||
/versions
|
||||
/sources
|
||||
|
||||
40
CHANGELOG.md
Normal file
40
CHANGELOG.md
Normal file
@@ -0,0 +1,40 @@
|
||||
## Version History
|
||||
|
||||
#### 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.
|
||||
4
LICENSE
4
LICENSE
@@ -1,5 +1,5 @@
|
||||
Copyright (c) 2011 Sam Stephenson
|
||||
Copyright (c) 2012 Yamashita, Yuu
|
||||
Copyright (c) 2013 Yamashita, Yuu
|
||||
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
|
||||
|
||||
129
README.md
129
README.md
@@ -25,7 +25,7 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
|
||||
* **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](http://pypi.python.org/pypi/virtualenv)
|
||||
yourself, or [python-virtualenv](https://github.com/yyuu/python-virtualenv)
|
||||
yourself, or [pyenv-virtualenv](https://github.com/yyuu/pyenv-virtualenv)
|
||||
to automate the process.
|
||||
|
||||
## Table of Contents
|
||||
@@ -38,6 +38,7 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
|
||||
* [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 Python Versions](#uninstalling-python-versions)
|
||||
* [Command Reference](#command-reference)
|
||||
@@ -128,8 +129,8 @@ Each Python version is installed into its own directory under
|
||||
`~/.pyenv/versions`. For example, you might have these versions
|
||||
installed:
|
||||
|
||||
* `~/.pyenv/versions/2.7.3/`
|
||||
* `~/.pyenv/versions/3.3.0/`
|
||||
* `~/.pyenv/versions/2.7.5/`
|
||||
* `~/.pyenv/versions/3.3.2/`
|
||||
* `~/.pyenv/versions/pypy-1.9/`
|
||||
|
||||
Version names to pyenv are simply the names of the directories in
|
||||
@@ -137,6 +138,9 @@ Version names to pyenv are simply the names of the directories in
|
||||
|
||||
## Installation
|
||||
|
||||
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 pyenv and make it
|
||||
@@ -166,9 +170,12 @@ easy to fork and contribute any changes back upstream.
|
||||
$ exec $SHELL
|
||||
|
||||
5. Install Python versions into `~/.pyenv/versions`. For example, to
|
||||
install Python 2.7.3, download and unpack the source, then run:
|
||||
install Python 2.7.5, download and unpack the source, then run:
|
||||
|
||||
$ pyenv install 2.7.3
|
||||
$ pyenv install 2.7.5
|
||||
|
||||
**NOTE** If you need to pass configure option to build, please use
|
||||
```CONFIGURE_OPTS``` environment variable.
|
||||
|
||||
6. Rebuild the shim binaries. You should do this any time you install
|
||||
a new Python binary (for example, when installing a new Python version,
|
||||
@@ -195,6 +202,23 @@ tag:
|
||||
v0.1.0
|
||||
$ git checkout v0.1.0
|
||||
|
||||
### Homebrew on Mac OS X
|
||||
|
||||
You can also install pyenv using the
|
||||
[Homebrew](http://mxcl.github.com/homebrew/) package manager on Mac OS
|
||||
X.
|
||||
|
||||
~~
|
||||
$ brew update
|
||||
$ brew install pyenv
|
||||
~~
|
||||
|
||||
To later update these installs, use `upgrade` instead of `install`.
|
||||
|
||||
Afterwards you'll still need to add `eval "$(pyenv init -)"` to your
|
||||
profile as stated in the caveats. You'll only ever have to do this
|
||||
once.
|
||||
|
||||
### Neckbeard Configuration
|
||||
|
||||
Skip this section unless you must know what every line in your shell
|
||||
@@ -253,7 +277,7 @@ 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.3
|
||||
$ pyenv local 2.7.5
|
||||
|
||||
When run without a version number, `pyenv local` reports the currently
|
||||
configured local version. You can also unset the local version:
|
||||
@@ -270,30 +294,16 @@ read a local version specified in an `.pyenv-version` file, but a
|
||||
You can specify multiple versions as local Python. Commands
|
||||
within these Python versions are searched by specified order.
|
||||
|
||||
$ pyenv local 2.7.3 3.2.3
|
||||
$ pyenv local 2.7.5 3.2.5
|
||||
$ pyenv local
|
||||
2.7.3
|
||||
3.2.3
|
||||
2.7.5
|
||||
3.2.5
|
||||
$ pyenv which python2.7
|
||||
/home/yyuu/.pyenv/versions/2.7.3/bin/python2.7
|
||||
/home/yyuu/.pyenv/versions/2.7.5/bin/python2.7
|
||||
$ pyenv which python3.2
|
||||
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
|
||||
/home/yyuu/.pyenv/versions/3.2.5/bin/python3.2
|
||||
$ pyenv which python
|
||||
/home/yyuu/.pyenv/versions/2.7.3/bin/python
|
||||
|
||||
You can manage your version stack by `pyenv push` and `pyenv pop`.
|
||||
|
||||
$ pyenv local
|
||||
2.7.3
|
||||
3.2.3
|
||||
$ pyenv push 3.3.0
|
||||
$ pyenv local
|
||||
2.7.3
|
||||
3.2.3
|
||||
3.3.0
|
||||
$ pyenv pop
|
||||
2.7.3
|
||||
3.2.3
|
||||
/home/yyuu/.pyenv/versions/2.7.5/bin/python
|
||||
|
||||
### pyenv global
|
||||
|
||||
@@ -302,7 +312,7 @@ 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.3
|
||||
$ pyenv global 2.7.5
|
||||
|
||||
The special version name `system` tells pyenv to use the system Python
|
||||
(detected by searching your `$PATH`).
|
||||
@@ -315,30 +325,16 @@ currently configured global version.
|
||||
You can specify multiple versions as global Python. Commands
|
||||
within these Python versions are searched by specified order.
|
||||
|
||||
$ pyenv global 2.7.3 3.2.3
|
||||
$ pyenv global 2.7.5 3.2.5
|
||||
$ pyenv global
|
||||
2.7.3
|
||||
3.2.3
|
||||
2.7.5
|
||||
3.2.5
|
||||
$ pyenv which python2.7
|
||||
/home/yyuu/.pyenv/versions/2.7.3/bin/python2.7
|
||||
/home/yyuu/.pyenv/versions/2.7.5/bin/python2.7
|
||||
$ pyenv which python3.2
|
||||
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
|
||||
/home/yyuu/.pyenv/versions/3.2.5/bin/python3.2
|
||||
$ pyenv which python
|
||||
/home/yyuu/.pyenv/versions/2.7.3/bin/python
|
||||
|
||||
You can manage your version stack by `pyenv push` and `pyenv pop`.
|
||||
|
||||
$ pyenv global
|
||||
2.7.3
|
||||
3.2.3
|
||||
$ pyenv push 3.3.0
|
||||
$ pyenv global
|
||||
2.7.3
|
||||
3.2.3
|
||||
3.3.0
|
||||
$ pyenv pop
|
||||
2.7.3
|
||||
3.2.3
|
||||
/home/yyuu/.pyenv/versions/2.7.5/bin/python
|
||||
|
||||
### pyenv shell
|
||||
|
||||
@@ -365,12 +361,12 @@ prefer not to use shell integration, you may simply set the
|
||||
You can specify multiple versions via `PYENV_VERSION`
|
||||
environment variable in your shell.
|
||||
|
||||
$ pyenv shell pypy-1.9 2.7.3
|
||||
$ pyenv shell pypy-1.9 2.7.5
|
||||
$ echo $PYENV_VERSION
|
||||
pypy-1.9:2.7.3
|
||||
pypy-1.9:2.7.5
|
||||
$ pyenv version
|
||||
pypy-1.9 (set by PYENV_VERSION environment variable)
|
||||
2.7.3 (set by PYENV_VERSION environment variable)
|
||||
2.7.5 (set by PYENV_VERSION environment variable)
|
||||
|
||||
### pyenv versions
|
||||
|
||||
@@ -380,8 +376,8 @@ the currently active version.
|
||||
$ pyenv versions
|
||||
2.5.6
|
||||
2.6.8
|
||||
* 2.7.3 (set by /home/yyuu/.pyenv/version)
|
||||
3.2.3
|
||||
* 2.7.5 (set by /home/yyuu/.pyenv/version)
|
||||
3.2.5
|
||||
jython-2.5.3
|
||||
pypy-1.9
|
||||
|
||||
@@ -391,7 +387,7 @@ Displays the currently active Python version, along with information on
|
||||
how it was set.
|
||||
|
||||
$ pyenv version
|
||||
2.7.3 (set by /home/yyuu/.pyenv/version)
|
||||
2.7.5 (set by /home/yyuu/.pyenv/version)
|
||||
|
||||
### pyenv rehash
|
||||
|
||||
@@ -407,7 +403,7 @@ Displays the full path to the executable that pyenv will invoke when
|
||||
you run the given command.
|
||||
|
||||
$ pyenv which python3.2
|
||||
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
|
||||
/home/yyuu/.pyenv/versions/3.2.5/bin/python3.2
|
||||
|
||||
### pyenv whence
|
||||
|
||||
@@ -415,8 +411,8 @@ Lists all Python versions with the given command installed.
|
||||
|
||||
$ pyenv whence 2to3
|
||||
2.6.8
|
||||
2.7.3
|
||||
3.2.3
|
||||
2.7.5
|
||||
3.2.5
|
||||
|
||||
## Development
|
||||
|
||||
@@ -429,30 +425,15 @@ tracker](https://github.com/yyuu/pyenv/issues).
|
||||
|
||||
### Version History
|
||||
|
||||
**0.2.0** (February 18, 2013)
|
||||
See CHANGELOG.md.
|
||||
|
||||
* 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.
|
||||
|
||||
### License
|
||||
|
||||
(The MIT license)
|
||||
|
||||
* Copyright (c) 2011 Sam Stephenson
|
||||
* Copyright (c) 2012 Yamashita, Yuu
|
||||
* Copyright (c) 2013 Yamashita, Yuu
|
||||
* 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
|
||||
|
||||
@@ -11,7 +11,7 @@ _pyenv() {
|
||||
if [ "${#words}" -eq 2 ]; then
|
||||
completions="$(pyenv commands)"
|
||||
else
|
||||
completions="$(pyenv completions "${words[2,-1]}")"
|
||||
completions="$(pyenv completions "${words[2,-2]}")"
|
||||
fi
|
||||
|
||||
reply=("${(ps:\n:)completions}")
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
set -e
|
||||
[ -n "$PYENV_DEBUG" ] && set -x
|
||||
|
||||
version="0.2.0"
|
||||
version="0.4.0-20130613"
|
||||
|
||||
cd "$PYENV_ROOT"
|
||||
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
|
||||
|
||||
@@ -26,7 +26,7 @@ fi
|
||||
PYENV_PREFIX_PATHS=()
|
||||
for version in "${versions[@]}"; do
|
||||
if [ "$version" = "system" ]; then
|
||||
PYTHON_PATH="$(pyenv-which python || true)"
|
||||
PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python || true)"
|
||||
PYENV_PREFIX_PATH="${PYTHON_PATH%/*}"
|
||||
else
|
||||
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
|
||||
|
||||
@@ -23,8 +23,6 @@ version_exists() {
|
||||
}
|
||||
|
||||
for version in "${versions[@]}"; do
|
||||
PYENV_VERSION_PATH="${PYENV_ROOT}/versions/${version}"
|
||||
|
||||
if [ "$version" != "system" ] && ! version_exists "$version"; then
|
||||
echo "pyenv: version \`$version' is not installed" >&2
|
||||
exit 1
|
||||
|
||||
1
plugins/.gitignore
vendored
1
plugins/.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
/*
|
||||
!/.gitignore
|
||||
!/version-ext-compat
|
||||
!/python-build
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
Copyright (c) 2011 Sam Stephenson
|
||||
Copyright (c) 2012 Yamashita, Yuu
|
||||
|
||||
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.
|
||||
199
plugins/python-build/README.md
Normal file
199
plugins/python-build/README.md
Normal file
@@ -0,0 +1,199 @@
|
||||
# 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.
|
||||
|
||||
|
||||
## 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.
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
### Using `pyenv install` with pyenv
|
||||
|
||||
To install a Python version for use with pyenv, run `pyenv install` with
|
||||
the 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.
|
||||
|
||||
### 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.
|
||||
* `CC` sets the path to the C compiler.
|
||||
* `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`.
|
||||
* `PYTHON_CONFIGURE_OPTS` and `PYTHON_MAKE_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).
|
||||
|
||||
### Checksum verification
|
||||
|
||||
If you have the `md5`, `openssl`, or `md5sum` tool installed,
|
||||
python-build will automatically verify the MD5 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 Amazon CloudFront. 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 MD5 checksum of the
|
||||
package file.
|
||||
|
||||
If you don't have an MD5 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 [Git Hub 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 [python-build
|
||||
wiki](https://github.com/yyuu/pyenv/wiki) for solutions to
|
||||
common problems.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
### License
|
||||
|
||||
(The MIT License)
|
||||
|
||||
* Copyright (c) 2013 Yamashita, Yuu
|
||||
* Copyright (c) 2012 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.
|
||||
@@ -2,14 +2,15 @@
|
||||
#
|
||||
# Summary: Install a Python version using the python-build plugin
|
||||
#
|
||||
# Usage: pyenv install [-f|--force] [-k|--keep] [-v|--verbose] <version>
|
||||
# pyenv install [-f|--force] [-k|--keep] [-v|--verbose] <definition-file>
|
||||
# Usage: pyenv install [-f|--force] [-g|--debug] [-k|--keep] [-v|--verbose] <version>
|
||||
# pyenv install [-f|--force] [-g|--debug] [-k|--keep] [-v|--verbose] <definition-file>
|
||||
# pyenv install -l|--list
|
||||
#
|
||||
# -l/--list List all available versions
|
||||
# -f/--force Install even if the version appears to be installed already
|
||||
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
|
||||
# (defaults to $PYENV_ROOT/sources)
|
||||
# -g/--debug Build a debug version
|
||||
# -v/--verbose Verbose mode: print compilation status to stdout
|
||||
#
|
||||
# For detailed information on installing Python versions with
|
||||
@@ -37,9 +38,19 @@ usage() {
|
||||
[ -z "$1" ] || exit "$1"
|
||||
}
|
||||
|
||||
definitions() {
|
||||
local query="$1"
|
||||
python-build --definitions | grep -F "$query" || true
|
||||
}
|
||||
|
||||
indent() {
|
||||
sed 's/^/ /'
|
||||
}
|
||||
|
||||
unset FORCE
|
||||
unset KEEP
|
||||
unset VERBOSE
|
||||
unset DEBUG
|
||||
|
||||
parse_options "$@"
|
||||
for option in "${OPTIONS[@]}"; do
|
||||
@@ -49,7 +60,7 @@ for option in "${OPTIONS[@]}"; do
|
||||
;;
|
||||
"l" | "list" )
|
||||
echo "Available versions:"
|
||||
python-build --definitions | sed 's/^/ /'
|
||||
definitions | indent
|
||||
exit
|
||||
;;
|
||||
"f" | "force" )
|
||||
@@ -61,6 +72,9 @@ for option in "${OPTIONS[@]}"; do
|
||||
"v" | "verbose" )
|
||||
VERBOSE="-v"
|
||||
;;
|
||||
"g" | "debug" )
|
||||
DEBUG="-g"
|
||||
;;
|
||||
"version" )
|
||||
exec python-build --version
|
||||
;;
|
||||
@@ -105,8 +119,11 @@ 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 [ -z "$FORCE" ] && [ -d "${PREFIX}/bin" ]; then
|
||||
@@ -131,19 +148,54 @@ if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
|
||||
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
|
||||
fi
|
||||
|
||||
# Default PYENV_VERSION to the globally-specified Python version. (The
|
||||
# Python 3.4 installer requires an existing Python installation to run. An
|
||||
# unsatisfied local .python-version file can cause the installer to
|
||||
# fail.)
|
||||
if [ -z "${PYENV_VERSION}" ]; then
|
||||
export PYENV_VERSION="$(pyenv global 2>/dev/null || true)"
|
||||
fi
|
||||
|
||||
|
||||
# Execute `before_install` hooks.
|
||||
for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
# Invoke `python-build` and record the exit status in $STATUS. Run
|
||||
# `pyenv rehash` after a successful installation.
|
||||
# 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 "$DEFINITION" "$PREFIX" || STATUS="$?"
|
||||
python-build $KEEP $VERBOSE $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?"
|
||||
|
||||
# Display a more helpful message if the definition wasn't found.
|
||||
if [ "$STATUS" == "2" ]; then
|
||||
{ candidates="$(definitions "$DEFINITION")"
|
||||
if [ -n "$candidates" ]; then
|
||||
echo
|
||||
echo "The following versions contain \`$DEFINITION' in the name:"
|
||||
echo "$candidates" | indent
|
||||
fi
|
||||
echo
|
||||
echo "You can list all available versions with \`pyenv install --list'."
|
||||
echo
|
||||
echo "If the version you're looking for is not present, first try upgrading"
|
||||
echo "pyenv. If it's still missing, open a request on the pyenv"
|
||||
echo "issue tracker: https://github.com/yyuu/pyenv/issues"
|
||||
} >&2
|
||||
fi
|
||||
|
||||
# Execute `after_install` hooks.
|
||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||
|
||||
# Run `pyenv-rehash` after a successful installation.
|
||||
[ "$STATUS" != "0" ] || pyenv rehash
|
||||
if [ "$STATUS" == "0" ]; then
|
||||
pyenv rehash
|
||||
else
|
||||
cleanup
|
||||
fi
|
||||
|
||||
exit "$STATUS"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
PYTHON_BUILD_VERSION="20121023"
|
||||
PYTHON_BUILD_VERSION="20130518"
|
||||
|
||||
set -E
|
||||
exec 3<&2 # preserve original stderr at fd 3
|
||||
@@ -57,6 +57,14 @@ abs_dirname() {
|
||||
cd "$cwd"
|
||||
}
|
||||
|
||||
capitalize() {
|
||||
printf "%s" "$1" | tr a-z A-Z
|
||||
}
|
||||
|
||||
sanitize() {
|
||||
printf "%s" "$1" | sed "s/[^A-Za-z0-9.-]/_/g; s/__*/_/g"
|
||||
}
|
||||
|
||||
build_failed() {
|
||||
{ echo
|
||||
echo "BUILD FAILED"
|
||||
@@ -89,19 +97,27 @@ file_is_not_empty() {
|
||||
}
|
||||
|
||||
install_package() {
|
||||
install_package_using "tarball" 1 $*
|
||||
install_package_using "tarball" 1 "$@"
|
||||
}
|
||||
|
||||
install_git() {
|
||||
install_package_using "git" 2 $*
|
||||
install_package_using "git" 2 "$@"
|
||||
}
|
||||
|
||||
install_hg() {
|
||||
install_package_using "hg" 2 "$@"
|
||||
}
|
||||
|
||||
install_svn() {
|
||||
install_package_using "svn" 2 $*
|
||||
install_package_using "svn" 2 "$@"
|
||||
}
|
||||
|
||||
install_jar() {
|
||||
install_package_using "jar" 1 $*
|
||||
install_package_using "jar" 1 "$@"
|
||||
}
|
||||
|
||||
install_zip() {
|
||||
install_package_using "zip" 1 "$@"
|
||||
}
|
||||
|
||||
install_package_using() {
|
||||
@@ -110,10 +126,22 @@ install_package_using() {
|
||||
local package_name="$3"
|
||||
shift 3
|
||||
|
||||
local fetch_args=( "$package_name" "${@:1:$package_type_nargs}" )
|
||||
local make_args=( "$package_name" )
|
||||
local arg last_arg
|
||||
|
||||
for arg in "${@:$(( $package_type_nargs + 1 ))}"; do
|
||||
if [ "$last_arg" = "--if" ]; then
|
||||
"$arg" || return 0
|
||||
elif [ "$arg" != "--if" ]; then
|
||||
make_args["${#make_args[@]}"]="$arg"
|
||||
fi
|
||||
last_arg="$arg"
|
||||
done
|
||||
|
||||
pushd "$BUILD_PATH" >&4
|
||||
"fetch_${package_type}" "$package_name" $*
|
||||
shift $(($package_type_nargs))
|
||||
make_package "$package_name" $*
|
||||
"fetch_${package_type}" "${fetch_args[@]}"
|
||||
make_package "${make_args[@]}"
|
||||
popd >&4
|
||||
|
||||
{ echo "Installed ${package_name} to ${PREFIX_PATH}"
|
||||
@@ -121,12 +149,31 @@ install_package_using() {
|
||||
} >&2
|
||||
}
|
||||
|
||||
apply_patches() {
|
||||
local package_name="$1"
|
||||
local patches_path="${PYTHON_BUILD_ROOT}/share/python-build/patches/${DEFINITION_PATH##*/}"
|
||||
|
||||
# Support PYTHON_PATCH_STRIP, etc.
|
||||
local package_var_name="$(capitalize "${package_name%%-*}")"
|
||||
local PACKAGE_PATCH_STRIP="${package_var_name}_PATCH_STRIP"
|
||||
|
||||
for patch in "${patches_path}/${package_name}/"*; do
|
||||
if [ -f "$patch" ]; then
|
||||
{
|
||||
echo "Applying ${patch##*/} to ${package_name}..."
|
||||
patch "-p${!PACKAGE_PATCH_STRIP:-0}" < "$patch"
|
||||
} >&4 2>&1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
make_package() {
|
||||
local package_name="$1"
|
||||
shift
|
||||
|
||||
pushd "$package_name" >&4
|
||||
before_install_package "$package_name"
|
||||
apply_patches "$package_name"
|
||||
build_package "$package_name" $*
|
||||
after_install_package "$package_name"
|
||||
fix_directory_permissions
|
||||
@@ -176,12 +223,13 @@ verify_checksum() {
|
||||
http() {
|
||||
local method="$1"
|
||||
local url="$2"
|
||||
local file="$3"
|
||||
[ -n "$url" ] || return 1
|
||||
|
||||
if type curl &>/dev/null; then
|
||||
"http_${method}_curl" "$url"
|
||||
"http_${method}_curl" "$url" "$file"
|
||||
elif type wget &>/dev/null; then
|
||||
"http_${method}_wget" "$url"
|
||||
"http_${method}_wget" "$url" "$file"
|
||||
else
|
||||
echo "error: please install \`curl\` or \`wget\` and try again" >&2
|
||||
exit 1
|
||||
@@ -189,11 +237,11 @@ http() {
|
||||
}
|
||||
|
||||
http_head_curl() {
|
||||
curl -sILf "$1" >&4 2>&1
|
||||
curl -qsILf "$1" >&4 2>&1
|
||||
}
|
||||
|
||||
http_get_curl() {
|
||||
curl -sSLf "$1"
|
||||
curl -C - -o "${2:--}" -qsSLf "$1"
|
||||
}
|
||||
|
||||
http_head_wget() {
|
||||
@@ -201,7 +249,7 @@ http_head_wget() {
|
||||
}
|
||||
|
||||
http_get_wget() {
|
||||
wget -nv -O- "$1"
|
||||
wget -nv -c -O "${2:--}" "$1"
|
||||
}
|
||||
|
||||
fetch_tarball() {
|
||||
@@ -219,7 +267,18 @@ fetch_tarball() {
|
||||
fi
|
||||
fi
|
||||
|
||||
local package_filename="${package_name}.tar" # later tar can read compression algorithm from file
|
||||
local _package_filename="${package_url##*/}"
|
||||
local _package_suffix="${_package_filename##*.}"
|
||||
case "${_package_suffix}" in
|
||||
"Z" | "bz2" | "gz" | "xz" )
|
||||
local package_suffix="tar.${_package_suffix}"
|
||||
;;
|
||||
* )
|
||||
local package_suffix="${_package_suffix}"
|
||||
;;
|
||||
esac
|
||||
|
||||
local package_filename="${package_name}.${package_suffix}"
|
||||
symlink_tarball_from_cache "$package_filename" "$checksum" || {
|
||||
echo "Downloading ${package_filename}..." >&2
|
||||
{ http head "$mirror_url" &&
|
||||
@@ -228,8 +287,13 @@ fetch_tarball() {
|
||||
download_tarball "$package_url" "$package_filename" "$checksum"
|
||||
}
|
||||
|
||||
{ tar xvf "$package_filename"
|
||||
rm -f "$package_filename"
|
||||
{ if tar xvf "$package_filename"; then
|
||||
if [ -z "$KEEP_BUILD_PATH" ]; then
|
||||
rm -f "$package_filename"
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
@@ -254,7 +318,7 @@ download_tarball() {
|
||||
|
||||
echo "-> $package_url" >&2
|
||||
|
||||
{ http get "$package_url" > "$package_filename"
|
||||
{ http get "$package_url" "$package_filename"
|
||||
verify_checksum "$package_filename" "$checksum"
|
||||
} >&4 2>&1 || return 1
|
||||
|
||||
@@ -274,6 +338,20 @@ fetch_git() {
|
||||
echo "Cloning ${git_url}..." >&2
|
||||
|
||||
if type git &>/dev/null; then
|
||||
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then
|
||||
pushd "$PYTHON_BUILD_CACHE_PATH" >&4
|
||||
local clone_name="$(sanitize "$git_url")"
|
||||
if [ -e "${clone_name}" ]; then
|
||||
{ cd "${clone_name}"
|
||||
git fetch --force "$git_url" "+${git_ref}:${git_ref}"
|
||||
} >&4 2>&1
|
||||
else
|
||||
git clone --bare --branch "$git_ref" "$git_url" "${clone_name}" >&4 2>&1
|
||||
fi
|
||||
git_url="$PYTHON_BUILD_CACHE_PATH/${clone_name}"
|
||||
popd >&4
|
||||
fi
|
||||
|
||||
git clone --depth 1 --branch "$git_ref" "$git_url" "${package_name}" >&4 2>&1
|
||||
else
|
||||
echo "error: please install \`git\` and try again" >&2
|
||||
@@ -281,6 +359,38 @@ fetch_git() {
|
||||
fi
|
||||
}
|
||||
|
||||
fetch_hg() {
|
||||
local package_name="$1"
|
||||
local hg_url="$2"
|
||||
local hg_ref="$3"
|
||||
|
||||
echo "Cloning ${hg_url}..." >&2
|
||||
|
||||
if type hg &>/dev/null; then
|
||||
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then
|
||||
pushd "$PYTHON_BUILD_CACHE_PATH" >&4
|
||||
local clone_name="$(sanitize "$hg_url")"
|
||||
if [ -e "${clone_name}" ]; then
|
||||
{ cd "${clone_name}"
|
||||
hg pull --force "$hg_url"
|
||||
} >&4 2>&1
|
||||
else
|
||||
{ hg clone --branch "$hg_ref" "$hg_url" "${clone_name}"
|
||||
cd "${clone_name}"
|
||||
hg update null
|
||||
} >&4 2>&1
|
||||
fi
|
||||
hg_url="$PYTHON_BUILD_CACHE_PATH/${clone_name}"
|
||||
popd >&4
|
||||
fi
|
||||
|
||||
hg clone --branch "$hg_ref" "$hg_url" "${package_name}" >&4 2>&1
|
||||
else
|
||||
echo "error: please install \`hg\` and try again" >&2
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
fetch_svn() {
|
||||
local package_name="$1"
|
||||
local svn_url="$2"
|
||||
@@ -312,7 +422,7 @@ fetch_jar() {
|
||||
fi
|
||||
|
||||
local package_filename="${package_name}.jar"
|
||||
symlink_jar_from_cache "$package_filename" "checksum" || {
|
||||
symlink_jar_from_cache "$package_filename" "$checksum" || {
|
||||
echo "Downloading ${package_filename}..." >&2
|
||||
{ http head "$mirror_url" &&
|
||||
download_jar "$mirror_url" "$package_filename" "$checksum"
|
||||
@@ -332,6 +442,48 @@ download_jar() {
|
||||
download_tarball "$@"
|
||||
}
|
||||
|
||||
fetch_zip() {
|
||||
local package_name="$1"
|
||||
local package_url="$2"
|
||||
local mirror_url
|
||||
local checksum
|
||||
|
||||
if [ "$package_url" != "${package_url/\#}" ]; then
|
||||
checksum="${package_url#*#}"
|
||||
package_url="${package_url%%#*}"
|
||||
|
||||
if [ -n "$PYTHON_BUILD_MIRROR_URL" ]; then
|
||||
mirror_url="${PYTHON_BUILD_MIRROR_URL}/$checksum"
|
||||
fi
|
||||
fi
|
||||
|
||||
local package_filename="${package_name}.zip"
|
||||
symlink_zip_from_cache "$package_filename" "$checksum" || {
|
||||
echo "Downloading ${package_filename}..." >&2
|
||||
{ http head "$mirror_url" &&
|
||||
download_zip "$mirror_url" "$package_filename" "$checksum"
|
||||
} ||
|
||||
download_zip "$package_url" "$package_filename" "$checksum"
|
||||
}
|
||||
|
||||
{ if unzip "$package_filename"; then
|
||||
if [ -z "$KEEP_BUILD_PATH" ]; then
|
||||
rm -f "$package_filename"
|
||||
else
|
||||
true
|
||||
fi
|
||||
fi
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
symlink_zip_from_cache() {
|
||||
symlink_tarball_from_cache "$@"
|
||||
}
|
||||
|
||||
download_zip() {
|
||||
download_tarball "$@"
|
||||
}
|
||||
|
||||
build_package() {
|
||||
local package_name="$1"
|
||||
shift
|
||||
@@ -345,20 +497,18 @@ build_package() {
|
||||
echo "Installing ${package_name}..." >&2
|
||||
|
||||
for command in $commands; do
|
||||
"build_package_${command}"
|
||||
"build_package_${command}" "$package_name"
|
||||
done
|
||||
}
|
||||
|
||||
if [ ! -f "$PYTHON_BIN" ]; then
|
||||
for python in ${PREFIX_PATH}/bin/python*; do
|
||||
if basename "$python" | grep '^python[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
|
||||
{
|
||||
cd ${PREFIX_PATH}/bin
|
||||
ln -fs "$(basename $python)" python
|
||||
}
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
package_option() {
|
||||
local package_name="$1"
|
||||
local command_name="$2"
|
||||
local variable="$(capitalize "${package_name}_${command_name}")_OPTS_ARRAY"
|
||||
local array="$variable[@]"
|
||||
shift 2
|
||||
local value=( "${!array}" "$@" )
|
||||
eval "$variable=( \"\${value[@]}\" )"
|
||||
}
|
||||
|
||||
build_package_standard() {
|
||||
@@ -370,10 +520,38 @@ build_package_standard() {
|
||||
MAKE_OPTS="-j 2"
|
||||
fi
|
||||
|
||||
{ ./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
|
||||
"$MAKE" $MAKE_OPTS
|
||||
# Support PYTHON_CONFIGURE_OPTS, etc.
|
||||
local package_var_name="$(capitalize "${package_name%%-*}")"
|
||||
local PACKAGE_CONFIGURE="${package_var_name}_CONFIGURE"
|
||||
local PACKAGE_PREFIX_PATH="${package_var_name}_PREFIX_PATH"
|
||||
local PACKAGE_CONFIGURE_OPTS="${package_var_name}_CONFIGURE_OPTS"
|
||||
local PACKAGE_CONFIGURE_OPTS_ARRAY="${package_var_name}_CONFIGURE_OPTS_ARRAY[@]"
|
||||
local PACKAGE_MAKE_OPTS="${package_var_name}_MAKE_OPTS"
|
||||
local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]"
|
||||
local PACKAGE_CFLAGS="${package_var_name}_CFLAGS"
|
||||
|
||||
( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then
|
||||
export CFLAGS="$CFLAGS ${!PACKAGE_CFLAGS}"
|
||||
fi
|
||||
${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}"
|
||||
) >&4 2>&1
|
||||
|
||||
{ "$MAKE" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} "${!PACKAGE_MAKE_OPTS_ARRAY}"
|
||||
"$MAKE" install
|
||||
} >&4 2>&1
|
||||
|
||||
# Create `python` executable if missing
|
||||
if [[ "${package_name}" == "Python"* ]] || [[ "${package_name}" == "stackless"* ]]; then
|
||||
if [ ! -f "$PYTHON_BIN" ]; then
|
||||
local python
|
||||
for python in "${PREFIX_PATH}/bin/python"*; do
|
||||
if expr "$(basename "$python")" : '^python[0-9][0-9]*\.[0-9][0-9]*$' 2>&1 >/dev/null; then
|
||||
( cd "${PREFIX_PATH}/bin" && ln -fs "$(basename "$python")" python )
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
build_package_autoconf() {
|
||||
@@ -389,20 +567,40 @@ build_package_python() {
|
||||
}
|
||||
|
||||
build_package_jython() {
|
||||
{
|
||||
build_package_copy
|
||||
cd "${PREFIX_PATH}/bin"
|
||||
ln -fs jython python
|
||||
}
|
||||
build_package_copy
|
||||
{ if [ -x "${PREFIX_PATH}/bin/jython" ] && [ ! -x "${PREFIX_PATH}/bin/python" ]; then
|
||||
( cd "${PREFIX_PATH}/bin" && ln -fs jython python )
|
||||
fi
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_jython_builder() {
|
||||
ant >&4 2>&1
|
||||
( cd "dist" && build_package_jython )
|
||||
}
|
||||
|
||||
build_package_pypy() {
|
||||
{
|
||||
mkdir -p "$PREFIX_PATH"
|
||||
cp -R . "$PREFIX_PATH"
|
||||
cd "${PREFIX_PATH}/bin"
|
||||
ln -fs pypy python
|
||||
}
|
||||
build_package_copy
|
||||
{ if [ -x "${PREFIX_PATH}/bin/pypy" ] && [ ! -x "${PREFIX_PATH}/bin/python" ]; then
|
||||
( cd "${PREFIX_PATH}/bin" && ln -fs pypy python )
|
||||
fi
|
||||
} >&4 2>&1
|
||||
}
|
||||
|
||||
build_package_pypy_builder() {
|
||||
if [ -f "rpython/bin/rpython" ]; then # pypy 2.x
|
||||
python "rpython/bin/rpython" ${PYPY_OPTS:-"-Ojit"} "pypy/goal/targetpypystandalone.py" >&4 2>&1
|
||||
elif [ -f "pypy/translator/goal/translate.py" ]; then # pypy 1.x
|
||||
( cd "pypy/translator/goal" && python "translate.py" ${PYPY_OPTS:-"--opt=jit"} "targetpypystandalone.py" ) 1>&4 2>&1
|
||||
else
|
||||
echo "not a pypy source tree" 1>&3
|
||||
return 1
|
||||
fi
|
||||
if [ -x "pypy-c" ] && [ ! -x "bin/pypy" ]; then
|
||||
mkdir -p "bin"
|
||||
mv -f "pypy-c" "bin/pypy"
|
||||
fi
|
||||
build_package_pypy
|
||||
}
|
||||
|
||||
build_package_copy() {
|
||||
@@ -433,12 +631,6 @@ require_gcc() {
|
||||
echo "find a suitable \`gcc\` executable on your system. Please install GCC"
|
||||
echo "and try again."
|
||||
echo
|
||||
|
||||
if [ "$(uname -s)" = "Darwin" ]; then
|
||||
echo "${esc}[1mDETAILS${esc}[0m: Apple no longer includes the official GCC compiler with Xcode"
|
||||
echo "as of version 4.2. Instead, the \`gcc\` executable is a symlink to"
|
||||
echo "\`llvm-gcc\`, a modified version of GCC which outputs LLVM bytecode."
|
||||
fi
|
||||
} >&3
|
||||
return 1
|
||||
fi
|
||||
@@ -490,6 +682,147 @@ verify_gcc() {
|
||||
echo "$gcc"
|
||||
}
|
||||
|
||||
has_broken_mac_openssl() {
|
||||
[ "$(uname -s)" = "Darwin" ] &&
|
||||
[ "$(openssl version 2>/dev/null || true)" = "OpenSSL 0.9.8r 8 Feb 2011" ] #&&
|
||||
# [[ "$PYTHON_CONFIGURE_OPTS" != *--with-openssl-dir=* ]] # The "--with-*-dir=" style arguments are only effective for mkmf.rb
|
||||
}
|
||||
|
||||
build_package_mac_openssl() {
|
||||
# Install to a subdirectory since we don't want shims for bin/openssl.
|
||||
OPENSSL_PREFIX_PATH="${PREFIX_PATH}/openssl"
|
||||
|
||||
# Put openssl.conf, certs, etc in ~/.pyenv/versions/*/openssl/ssl
|
||||
OPENSSLDIR="${OPENSSLDIR:-$OPENSSL_PREFIX_PATH/ssl}"
|
||||
|
||||
# Tell Python to use this openssl for its extension.
|
||||
package_option python configure --with-openssl-dir="$OPENSSL_PREFIX_PATH"
|
||||
|
||||
# Hint OpenSSL that we prefer a 64-bit build.
|
||||
export KERNEL_BITS="64"
|
||||
OPENSSL_CONFIGURE="${OPENSSL_CONFIGURE:-./config}"
|
||||
|
||||
# Compile a shared lib with zlib dynamically linked, no kerberos.
|
||||
package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-krb5 shared
|
||||
|
||||
# Default MAKE_OPTS are -j 2 which can confuse the build. Thankfully, make
|
||||
# gives precedence to the last -j option, so we can override that.
|
||||
package_option openssl make -j 1
|
||||
|
||||
build_package_standard "$@"
|
||||
|
||||
# Extract root certs from the system keychain in .pem format and rehash.
|
||||
local pem_file="$OPENSSLDIR/cert.pem"
|
||||
security find-certificate -a -p /Library/Keychains/System.keychain > "$pem_file"
|
||||
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$pem_file"
|
||||
}
|
||||
|
||||
has_broken_mac_readline() {
|
||||
# MacOSX 10.4 has a broken readline.
|
||||
# https://github.com/yyuu/pyenv/issues/23
|
||||
local retval=1
|
||||
local conftest="$BUILD_PATH/has_broken_mac_readline.h"
|
||||
if [ "$(uname -s)" = "Darwin" ]; then
|
||||
echo "#include <readline/rlconf.h>" > "$conftest"
|
||||
"${CPP:-cpp}" $CFLAGS $CPPFLAGS $LDFLAGS "$conftest" 1>/dev/null 2>&1 || retval=0
|
||||
rm -f "$conftest"
|
||||
fi
|
||||
return "$retval"
|
||||
}
|
||||
|
||||
# Post-install check for Python 2.5.x
|
||||
build_package_verify_py25() {
|
||||
build_package_verify_readline "$@"
|
||||
build_package_verify_sqlite3 "$@"
|
||||
build_package_verify_zlib "$@"
|
||||
build_package_verify_bz2 "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 2.6.x
|
||||
build_package_verify_py26() {
|
||||
build_package_verify_py25 "$@"
|
||||
build_package_verify_ssl "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 2.7.x
|
||||
build_package_verify_py27() {
|
||||
build_package_verify_py26 "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.0.x
|
||||
build_package_verify_py30() {
|
||||
build_package_verify_readline "$@"
|
||||
build_package_verify_ssl "$@"
|
||||
build_package_verify_sqlite3 "$@"
|
||||
build_package_verify_zlib "$@"
|
||||
build_package_verify_bz2 "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.1.x
|
||||
build_package_verify_py31() {
|
||||
build_package_verify_py30 "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.2.x
|
||||
build_package_verify_py32() {
|
||||
build_package_verify_py31 "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.3.x
|
||||
build_package_verify_py33() {
|
||||
build_package_verify_py32 "$@"
|
||||
}
|
||||
|
||||
# Post-install check for Python 3.4.x
|
||||
build_package_verify_py34() {
|
||||
build_package_verify_py33 "$@"
|
||||
}
|
||||
|
||||
# Post-install check that the readline extension was built.
|
||||
build_package_verify_readline() {
|
||||
"$PYTHON_BIN" -c 'try:
|
||||
import readline
|
||||
except ImportError:
|
||||
raise(ImportError("The Python readline extension was not compiled. Missing the GNU readline lib?"))
|
||||
' >&4 2>&1
|
||||
}
|
||||
|
||||
# Post-install check that the ssl extension was built.
|
||||
build_package_verify_ssl() {
|
||||
"$PYTHON_BIN" -c 'try:
|
||||
import ssl
|
||||
except ImportError:
|
||||
raise(ImportError("The Python ssl extension was not compiled. Missing the OpenSSL lib?"))
|
||||
' >&4 2>&1
|
||||
}
|
||||
|
||||
# Post-install check that the sqlite3 extension was built.
|
||||
build_package_verify_sqlite3() {
|
||||
"$PYTHON_BIN" -c 'try:
|
||||
import sqlite3
|
||||
except ImportError:
|
||||
raise(ImportError("The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?"))
|
||||
' >&4 2>&1
|
||||
}
|
||||
|
||||
# Post-install check that the zlib extension was built.
|
||||
build_package_verify_zlib() {
|
||||
"$PYTHON_BIN" -c 'try:
|
||||
import zlib
|
||||
except ImportError:
|
||||
raise(ImportError("The Python zlib extension was not compiled. Missing the zlib?"))
|
||||
' >&4 2>&1
|
||||
}
|
||||
|
||||
# Post-install check that the bz2 extension was built.
|
||||
build_package_verify_bz2() {
|
||||
"$PYTHON_BIN" -c 'try:
|
||||
import bz2
|
||||
except ImportError:
|
||||
raise(ImportError("The Python bz2 extension was not compiled. Missing the bzip2 lib?"))
|
||||
' >&4 2>&1
|
||||
}
|
||||
|
||||
require_java() {
|
||||
local java="$(locate_java || true)"
|
||||
|
||||
@@ -557,7 +890,7 @@ version() {
|
||||
|
||||
usage() {
|
||||
{ version
|
||||
echo "usage: python-build [-k|--keep] [-v|--verbose] definition prefix"
|
||||
echo "usage: python-build [-g|--debug] [-k|--keep] [-v|--verbose] definition prefix"
|
||||
echo " python-build --definitions"
|
||||
} >&2
|
||||
|
||||
@@ -568,7 +901,7 @@ usage() {
|
||||
|
||||
list_definitions() {
|
||||
{ for definition in "${PYTHON_BUILD_ROOT}/share/python-build/"*; do
|
||||
echo "${definition##*/}"
|
||||
[ -f "${definition}" ] && echo "${definition##*/}"
|
||||
done
|
||||
} | sort
|
||||
}
|
||||
@@ -578,6 +911,7 @@ list_definitions() {
|
||||
unset VERBOSE
|
||||
unset KEEP_BUILD_PATH
|
||||
PYTHON_BUILD_ROOT="$(abs_dirname "$0")/.."
|
||||
unset DEBUG
|
||||
|
||||
parse_options "$@"
|
||||
|
||||
@@ -587,6 +921,7 @@ for option in "${OPTIONS[@]}"; do
|
||||
usage without_exiting
|
||||
{ echo
|
||||
echo " -k/--keep Do not remove source tree after installation"
|
||||
echo " -g/--debug Build a debug version"
|
||||
echo " -v/--verbose Verbose mode: print compilation status to stdout"
|
||||
echo " --definitions List all built-in definitions"
|
||||
echo
|
||||
@@ -603,6 +938,9 @@ for option in "${OPTIONS[@]}"; do
|
||||
"v" | "verbose" )
|
||||
VERBOSE=true
|
||||
;;
|
||||
"g" | "debug" )
|
||||
DEBUG=true
|
||||
;;
|
||||
"version" )
|
||||
version
|
||||
exit 0
|
||||
@@ -619,7 +957,7 @@ elif [ ! -e "$DEFINITION_PATH" ]; then
|
||||
DEFINITION_PATH="$BUILTIN_DEFINITION_PATH"
|
||||
else
|
||||
echo "python-build: definition not found: ${DEFINITION_PATH}" >&2
|
||||
exit 1
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -635,7 +973,7 @@ else
|
||||
fi
|
||||
|
||||
if [ -z "$MAKE" ]; then
|
||||
MAKE="make"
|
||||
export MAKE="make"
|
||||
fi
|
||||
|
||||
if [ -n "$PYTHON_BUILD_CACHE_PATH" ] && [ -d "$PYTHON_BUILD_CACHE_PATH" ]; then
|
||||
@@ -645,7 +983,7 @@ else
|
||||
fi
|
||||
|
||||
if [ -z "$PYTHON_BUILD_MIRROR_URL" ]; then
|
||||
PYTHON_BUILD_MIRROR_URL="" # FIXME: setup mirror site
|
||||
PYTHON_BUILD_MIRROR_URL="http://yyuu.github.io/pythons"
|
||||
else
|
||||
PYTHON_BUILD_MIRROR_URL="${PYTHON_BUILD_MIRROR_URL%/}"
|
||||
fi
|
||||
@@ -661,6 +999,10 @@ else
|
||||
unset PYTHON_BUILD_MIRROR_URL
|
||||
fi
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
CONFIGURE_OPTS+=" --with-pydebug"
|
||||
fi
|
||||
|
||||
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
||||
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
||||
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
||||
@@ -669,13 +1011,14 @@ CWD="$(pwd)"
|
||||
if [ -z $PYTHON_BUILD_BUILD_PATH ]; then
|
||||
BUILD_PATH="${TMP}/python-build.${SEED}"
|
||||
else
|
||||
BUILD_PATH=$PYTHON_BUILD_BUILD_PATH
|
||||
BUILD_PATH="$PYTHON_BUILD_BUILD_PATH"
|
||||
fi
|
||||
|
||||
exec 4<> "$LOG_PATH" # open the log file at fd 4
|
||||
if [ -n "$VERBOSE" ]; then
|
||||
tail -f "$LOG_PATH" &
|
||||
trap "kill 0" SIGINT SIGTERM EXIT
|
||||
TAIL_PID=$!
|
||||
trap "kill $TAIL_PID" SIGINT SIGTERM EXIT
|
||||
fi
|
||||
|
||||
export LDFLAGS="-L'${PREFIX_PATH}/lib' ${LDFLAGS}"
|
||||
|
||||
@@ -17,7 +17,7 @@ for file in bin/*; do
|
||||
done
|
||||
|
||||
for file in share/python-build/*; do
|
||||
cp "${file}" "${SHARE_PATH}"
|
||||
cp -Rp "${file}" "${SHARE_PATH}"
|
||||
done
|
||||
|
||||
echo "Installed python-build at ${PREFIX}"
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5" "http://www.python.org/ftp/python/2.5/Python-2.5.tgz#bc1b74f90a472a6c0a85481aaeb43f95"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5" "http://www.python.org/ftp/python/2.5/Python-2.5.tgz#bc1b74f90a472a6c0a85481aaeb43f95" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5.1" "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#cca695828df8adc3e69b637af07522e1"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5.1" "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#cca695828df8adc3e69b637af07522e1" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5.2" "http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#3f7ca8aa86c6bd275426d63b46e07992"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5.2" "http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#3f7ca8aa86c6bd275426d63b46e07992" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5.3" "http://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#a971f8928d6beb31ae0de56f7034d6a2"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5.3" "http://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#a971f8928d6beb31ae0de56f7034d6a2" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5.4" "http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#ad47b23778f64edadaaa8b5534986eed"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5.4" "http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#ad47b23778f64edadaaa8b5534986eed" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5.5" "http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#abc02139ca38f4258e8e372f7da05c88"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5.5" "http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#abc02139ca38f4258e8e372f7da05c88" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
case "$OSTYPE" in
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
x86_64)
|
||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "Python-2.5.6" "http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#d1d9c83928561addf11d00b22a18ca50"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.5.6" "http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#d1d9c83928561addf11d00b22a18ca50" standard verify_py25
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/2.6-dev
Normal file
5
plugins/python-build/share/python-build/2.6-dev
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-2.6-dev" "https://bitbucket.org/mirror/cpython" "2.6" standard verify_py26
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-2.6.6" "http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.6.6" "http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0" standard verify_py26
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-2.6.7" "http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.6.7" "http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d" standard verify_py26
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-2.6.8" "http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.6.8" "http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6" standard verify_py26
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-2.7" "http://www.python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.7" "http://www.python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/2.7-dev
Normal file
5
plugins/python-build/share/python-build/2.7-dev
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-2.7.1" "http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.7.1" "http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-2.7.2" "http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.7.2" "http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-2.7.3" "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.7.3" "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/2.7.4
Normal file
5
plugins/python-build/share/python-build/2.7.4
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.7.4" "http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz#592603cfaf4490a980e93ecb92bde44a" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
5
plugins/python-build/share/python-build/2.7.5
Normal file
5
plugins/python-build/share/python-build/2.7.5
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-2.7.5" "http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" standard verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python30/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-3.0.1" "http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.0.1" "http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe" standard verify_py30
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/3.1-dev
Normal file
5
plugins/python-build/share/python-build/3.1-dev
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-3.1-dev" "https://bitbucket.org/mirror/cpython" "3.1" standard verify_py31
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-3.1.3" "http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.1.3" "http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424" standard verify_py31
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-3.1.4" "http://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.1.4" "http://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35" standard verify_py31
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-3.1.5" "http://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.1.5" "http://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab" standard verify_py31
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,13 +1,5 @@
|
||||
before_install_package() {
|
||||
local package_name="$1"
|
||||
case "$package_name" in
|
||||
Python*)
|
||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python32/patch-setup.py.diff" > setup.patch
|
||||
patch -p0 < setup.patch
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package "Python-3.2" "http://www.python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.2" "http://www.python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/3.2-dev
Normal file
5
plugins/python-build/share/python-build/3.2-dev
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-3.2-dev" "https://bitbucket.org/mirror/cpython" "3.2" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-3.2.1" "http://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.2.1" "http://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-3.2.2" "http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.2.2" "http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-3.2.3" "http://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.2.3" "http://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/3.2.4
Normal file
5
plugins/python-build/share/python-build/3.2.4
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.2.4" "http://www.python.org/ftp/python/3.2.4/Python-3.2.4.tgz#3af05758d0bc2b1a27249e8d622c3e91" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
5
plugins/python-build/share/python-build/3.2.5
Normal file
5
plugins/python-build/share/python-build/3.2.5
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.2.5" "http://www.python.org/ftp/python/3.2.5/Python-3.2.5.tgz#ed8d5529d2aebc36b53f4e0a0c9e6728" standard verify_py32
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
5
plugins/python-build/share/python-build/3.3-dev
Normal file
5
plugins/python-build/share/python-build/3.3-dev
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-3.3-dev" "https://bitbucket.org/mirror/cpython" "3.3" standard verify_py33
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,3 +1,5 @@
|
||||
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254"
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254" standard verify_py33
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
5
plugins/python-build/share/python-build/3.3.1
Normal file
5
plugins/python-build/share/python-build/3.3.1
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.3.1" "http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz#c19bfd6ea252b61779a4f2996fb3b330" standard verify_py33
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
5
plugins/python-build/share/python-build/3.3.2
Normal file
5
plugins/python-build/share/python-build/3.3.2
Normal file
@@ -0,0 +1,5 @@
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_package "Python-3.3.2" "http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz#0a2ea57f6184baf45b150aee53c0c8da" standard verify_py33
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
12
plugins/python-build/share/python-build/3.4-dev
Normal file
12
plugins/python-build/share/python-build/3.4-dev
Normal file
@@ -0,0 +1,12 @@
|
||||
# Python 3.4 requires "python3.4" to be executable if it is in ${PATH}.
|
||||
if ! pyenv-which python3.4 1>/dev/null 2>&1; then
|
||||
if pyenv-whence python3.4 1>/dev/null 2>&1; then
|
||||
export PYENV_VERSION="$(pyenv-whence python3.4 2>/dev/null | tail -1)"
|
||||
fi
|
||||
fi
|
||||
|
||||
require_gcc
|
||||
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||
install_hg "Python-3.4-dev" "https://bitbucket.org/mirror/cpython" "default" standard verify_py34
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
6
plugins/python-build/share/python-build/jython-2.5-dev
Normal file
6
plugins/python-build/share/python-build/jython-2.5-dev
Normal file
@@ -0,0 +1,6 @@
|
||||
require_java
|
||||
install_hg "jython-2.5-dev" "http://hg.python.org/jython" "2.5" jython_builder
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
@@ -1,4 +1,9 @@
|
||||
require_java
|
||||
install_jar "Jython-2.5.0" "https://downloads.sourceforge.net/project/jython/jython/2.5.0/jython_installer-2.5.0.jar#f98b83fce9669feec69d0a17ee515a20" jython
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
# distribute (>= 0.33) does not support Jython prior to 2.5.2
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
# * https://bitbucket.org/tarek/distribute/issue/367/importing-setuptoolssandbox-fails-on
|
||||
install_package "distribute-0.6.32" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.32.tar.gz#acb7a2da81e3612bfb1608abe4f0e568" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
require_java
|
||||
install_jar "Jython-2.5.1" "https://downloads.sourceforge.net/project/jython/jython/2.5.1/jython_installer-2.5.1.jar#2ee978eff4306b23753b3fe9d7af5b37" jython
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
# distribute (>= 0.33) does not support Jython prior to 2.5.2
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
# * https://bitbucket.org/tarek/distribute/issue/367/importing-setuptoolssandbox-fails-on
|
||||
install_package "distribute-0.6.32" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.32.tar.gz#acb7a2da81e3612bfb1608abe4f0e568" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
require_java
|
||||
install_jar "Jython-2.5.2" "https://downloads.sourceforge.net/project/jython/jython/2.5.2/jython_installer-2.5.2.jar#7c7d9abd8985df480edeacd27ed9dcd5" jython
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
require_java
|
||||
install_jar "Jython-2.5.3" "http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.5.3/jython-installer-2.5.3.jar#41633b4557483d6d4237ee79ffcebe7b" jython
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
|
||||
6
plugins/python-build/share/python-build/jython-2.5.4-rc1
Normal file
6
plugins/python-build/share/python-build/jython-2.5.4-rc1
Normal file
@@ -0,0 +1,6 @@
|
||||
require_java
|
||||
install_jar "Jython-2.5.4-rc1" "http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.5.4-rc1/jython-installer-2.5.4-rc1.jar#1be8d75d02886ce1a8542bb794a20db2" jython
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
6
plugins/python-build/share/python-build/jython-2.7-beta1
Normal file
6
plugins/python-build/share/python-build/jython-2.7-beta1
Normal file
@@ -0,0 +1,6 @@
|
||||
require_java
|
||||
install_jar "Jython-2.7-beta1" "http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.7-b1/jython-installer-2.7-b1.jar" jython
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
6
plugins/python-build/share/python-build/jython-dev
Normal file
6
plugins/python-build/share/python-build/jython-dev
Normal file
@@ -0,0 +1,6 @@
|
||||
require_java
|
||||
install_hg "jython-dev" "http://hg.python.org/jython" "default" jython_builder
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
# pip (>= 1.3) does not work properly since it uses HTTPS for downloads
|
||||
# * https://github.com/yyuu/pyenv/issues/15
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,47 @@
|
||||
diff -r -u ./Makefile.pre.in ../Python-2.5.1/Makefile.pre.in
|
||||
--- ./Makefile.pre.in 2006-12-09 05:46:13.000000000 +0900
|
||||
+++ ../Python-2.5.1/Makefile.pre.in 2013-05-08 19:05:06.000000000 +0900
|
||||
@@ -455,7 +455,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
diff -r -u ./Modules/getbuildinfo.c ../Python-2.5.1/Modules/getbuildinfo.c
|
||||
--- ./Modules/getbuildinfo.c 2006-01-18 18:13:51.000000000 +0900
|
||||
+++ ../Python-2.5.1/Modules/getbuildinfo.c 2013-05-08 19:05:31.000000000 +0900
|
||||
@@ -43,6 +43,6 @@
|
||||
#ifdef SVNVERSION
|
||||
return SVNVERSION;
|
||||
#else
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
#endif
|
||||
}
|
||||
diff -r -u ./Python/sysmodule.c ../Python-2.5.1/Python/sysmodule.c
|
||||
--- ./Python/sysmodule.c 2007-04-16 15:12:02.000000000 +0900
|
||||
+++ ../Python-2.5.1/Python/sysmodule.c 2013-05-08 19:05:49.000000000 +0900
|
||||
@@ -1011,7 +1011,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
diff -r -u ./configure.in ../Python-2.5.1/configure.in
|
||||
--- ./configure.in 2007-03-12 19:50:51.000000000 +0900
|
||||
+++ ../Python-2.5.1/configure.in 2013-05-08 19:04:36.000000000 +0900
|
||||
@@ -691,7 +691,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,42 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -767,7 +767,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
--- Makefile.pre.in
|
||||
+++ Makefile.pre.in
|
||||
@@ -501,7 +501,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
--- Modules/getbuildinfo.c
|
||||
+++ Modules/getbuildinfo.c
|
||||
@@ -48,5 +48,5 @@
|
||||
static const char svnversion[] = SVNVERSION;
|
||||
if (svnversion[0] != '$')
|
||||
return svnversion; /* it was interpolated, or passed on command line */
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
}
|
||||
--- Python/sysmodule.c
|
||||
+++ Python/sysmodule.c
|
||||
@@ -1161,7 +1161,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0 && strcmp(svnversion, "exported") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,42 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -767,7 +767,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
--- Makefile.pre.in
|
||||
+++ Makefile.pre.in
|
||||
@@ -501,7 +501,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
--- Modules/getbuildinfo.c
|
||||
+++ Modules/getbuildinfo.c
|
||||
@@ -48,5 +48,5 @@
|
||||
static const char svnversion[] = SVNVERSION;
|
||||
if (svnversion[0] != '$')
|
||||
return svnversion; /* it was interpolated, or passed on command line */
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
}
|
||||
--- Python/sysmodule.c
|
||||
+++ Python/sysmodule.c
|
||||
@@ -1161,7 +1161,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0 && strcmp(svnversion, "exported") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,42 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -767,7 +767,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
--- Makefile.pre.in
|
||||
+++ Makefile.pre.in
|
||||
@@ -501,7 +501,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
--- Modules/getbuildinfo.c
|
||||
+++ Modules/getbuildinfo.c
|
||||
@@ -48,5 +48,5 @@
|
||||
static const char svnversion[] = SVNVERSION;
|
||||
if (svnversion[0] != '$')
|
||||
return svnversion; /* it was interpolated, or passed on command line */
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
}
|
||||
--- Python/sysmodule.c
|
||||
+++ Python/sysmodule.c
|
||||
@@ -1161,7 +1161,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0 && strcmp(svnversion, "exported") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,42 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -767,7 +767,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
--- Makefile.pre.in
|
||||
+++ Makefile.pre.in
|
||||
@@ -501,7 +501,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
--- Modules/getbuildinfo.c
|
||||
+++ Modules/getbuildinfo.c
|
||||
@@ -48,5 +48,5 @@
|
||||
static const char svnversion[] = SVNVERSION;
|
||||
if (svnversion[0] != '$')
|
||||
return svnversion; /* it was interpolated, or passed on command line */
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
}
|
||||
--- Python/sysmodule.c
|
||||
+++ Python/sysmodule.c
|
||||
@@ -1161,7 +1161,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0 && strcmp(svnversion, "exported") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,42 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -767,7 +767,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
--- Makefile.pre.in
|
||||
+++ Makefile.pre.in
|
||||
@@ -501,7 +501,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
--- Modules/getbuildinfo.c
|
||||
+++ Modules/getbuildinfo.c
|
||||
@@ -48,5 +48,5 @@
|
||||
static const char svnversion[] = SVNVERSION;
|
||||
if (svnversion[0] != '$')
|
||||
return svnversion; /* it was interpolated, or passed on command line */
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
}
|
||||
--- Python/sysmodule.c
|
||||
+++ Python/sysmodule.c
|
||||
@@ -1161,7 +1161,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0 && strcmp(svnversion, "exported") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
@@ -0,0 +1,45 @@
|
||||
--- setup.py.orig 2011-07-07 19:19:43.800122463 +0900
|
||||
+++ setup.py 2011-07-07 19:25:04.548416377 +0900
|
||||
@@ -13,6 +13,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -242,10 +243,34 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ fp = open(tmpfile)
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ fp.close()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,47 @@
|
||||
diff -r -u ./Makefile.pre.in ../Python-2.5/Makefile.pre.in
|
||||
--- ./Makefile.pre.in 2006-07-31 01:20:10.000000000 +0900
|
||||
+++ ../Python-2.5/Makefile.pre.in 2013-05-08 19:19:27.000000000 +0900
|
||||
@@ -455,7 +455,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LANG=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LANG=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
diff -r -u ./Modules/getbuildinfo.c ../Python-2.5/Modules/getbuildinfo.c
|
||||
--- ./Modules/getbuildinfo.c 2006-01-18 18:13:51.000000000 +0900
|
||||
+++ ../Python-2.5/Modules/getbuildinfo.c 2013-05-08 19:19:40.000000000 +0900
|
||||
@@ -43,6 +43,6 @@
|
||||
#ifdef SVNVERSION
|
||||
return SVNVERSION;
|
||||
#else
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
#endif
|
||||
}
|
||||
diff -r -u ./Python/sysmodule.c ../Python-2.5/Python/sysmodule.c
|
||||
--- ./Python/sysmodule.c 2006-07-21 14:32:28.000000000 +0900
|
||||
+++ ../Python-2.5/Python/sysmodule.c 2013-05-08 19:19:55.000000000 +0900
|
||||
@@ -1009,7 +1009,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
diff -r -u ./configure.in ../Python-2.5/configure.in
|
||||
--- ./configure.in 2006-09-05 11:54:42.000000000 +0900
|
||||
+++ ../Python-2.5/configure.in 2013-05-08 19:20:05.000000000 +0900
|
||||
@@ -686,7 +686,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-2.6.8/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2012-04-11 00:32:06.000000000 +0900
|
||||
+++ ../Python-2.6.8/Lib/ssl.py 2013-05-08 19:44:49.000000000 +0900
|
||||
@@ -61,7 +61,19 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import \
|
||||
SSL_ERROR_ZERO_RETURN, \
|
||||
@@ -402,16 +414,7 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
|
||||
|
||||
# a replacement for the old socket.ssl function
|
||||
diff -r -u ./Modules/_ssl.c ../Python-2.6.8/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2012-04-11 00:32:09.000000000 +0900
|
||||
+++ ../Python-2.6.8/Modules/_ssl.c 2013-05-08 17:34:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -302,8 +304,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1688,8 +1692,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-2.6.8/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2012-04-11 00:32:06.000000000 +0900
|
||||
+++ ../Python-2.6.8/Lib/ssl.py 2013-05-08 19:44:49.000000000 +0900
|
||||
@@ -61,7 +61,19 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import \
|
||||
SSL_ERROR_ZERO_RETURN, \
|
||||
@@ -402,16 +414,7 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
|
||||
|
||||
# a replacement for the old socket.ssl function
|
||||
diff -r -u ./Modules/_ssl.c ../Python-2.6.8/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2012-04-11 00:32:09.000000000 +0900
|
||||
+++ ../Python-2.6.8/Modules/_ssl.c 2013-05-08 17:34:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -302,8 +304,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1688,8 +1692,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-2.6.8/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2012-04-11 00:32:06.000000000 +0900
|
||||
+++ ../Python-2.6.8/Lib/ssl.py 2013-05-08 19:44:49.000000000 +0900
|
||||
@@ -61,7 +61,19 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import \
|
||||
SSL_ERROR_ZERO_RETURN, \
|
||||
@@ -402,16 +414,7 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
|
||||
|
||||
# a replacement for the old socket.ssl function
|
||||
diff -r -u ./Modules/_ssl.c ../Python-2.6.8/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2012-04-11 00:32:09.000000000 +0900
|
||||
+++ ../Python-2.6.8/Modules/_ssl.c 2013-05-08 17:34:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -302,8 +304,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1688,8 +1692,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-2.6.8/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2012-04-11 00:32:06.000000000 +0900
|
||||
+++ ../Python-2.6.8/Lib/ssl.py 2013-05-08 19:44:49.000000000 +0900
|
||||
@@ -61,7 +61,19 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import \
|
||||
SSL_ERROR_ZERO_RETURN, \
|
||||
@@ -402,16 +414,7 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
|
||||
|
||||
# a replacement for the old socket.ssl function
|
||||
diff -r -u ./Modules/_ssl.c ../Python-2.6.8/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2012-04-11 00:32:09.000000000 +0900
|
||||
+++ ../Python-2.6.8/Modules/_ssl.c 2013-05-08 17:34:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -302,8 +304,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1688,8 +1692,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-2.6.8/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2012-04-11 00:32:06.000000000 +0900
|
||||
+++ ../Python-2.6.8/Lib/ssl.py 2013-05-08 19:44:49.000000000 +0900
|
||||
@@ -61,7 +61,19 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import \
|
||||
SSL_ERROR_ZERO_RETURN, \
|
||||
@@ -402,16 +414,7 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
|
||||
|
||||
# a replacement for the old socket.ssl function
|
||||
diff -r -u ./Modules/_ssl.c ../Python-2.6.8/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2012-04-11 00:32:09.000000000 +0900
|
||||
+++ ../Python-2.6.8/Modules/_ssl.c 2013-05-08 17:34:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -302,8 +304,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1688,8 +1692,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-2.6.8/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2012-04-11 00:32:06.000000000 +0900
|
||||
+++ ../Python-2.6.8/Lib/ssl.py 2013-05-08 19:44:49.000000000 +0900
|
||||
@@ -61,7 +61,19 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+from _ssl import PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import \
|
||||
SSL_ERROR_ZERO_RETURN, \
|
||||
@@ -402,16 +414,7 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
|
||||
|
||||
# a replacement for the old socket.ssl function
|
||||
diff -r -u ./Modules/_ssl.c ../Python-2.6.8/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2012-04-11 00:32:09.000000000 +0900
|
||||
+++ ../Python-2.6.8/Modules/_ssl.c 2013-05-08 17:34:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -302,8 +304,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1688,8 +1692,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,44 @@
|
||||
--- setup.py.orig 2011-07-07 19:41:48.610196111 +0900
|
||||
+++ setup.py 2011-07-07 19:46:44.986310031 +0900
|
||||
@@ -14,6 +14,7 @@
|
||||
from distutils.command.build_ext import build_ext
|
||||
from distutils.command.install import install
|
||||
from distutils.command.install_lib import install_lib
|
||||
+from distutils.spawn import find_executable
|
||||
|
||||
# This global variable is used to hold the list of modules to be disabled.
|
||||
disabled_module_list = []
|
||||
@@ -308,10 +309,33 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,42 @@
|
||||
--- configure.in
|
||||
+++ configure.in
|
||||
@@ -767,7 +767,7 @@
|
||||
then
|
||||
SVNVERSION="svnversion \$(srcdir)"
|
||||
else
|
||||
- SVNVERSION="echo exported"
|
||||
+ SVNVERSION="echo Unversioned directory"
|
||||
fi
|
||||
|
||||
case $MACHDEP in
|
||||
--- Makefile.pre.in
|
||||
+++ Makefile.pre.in
|
||||
@@ -501,7 +501,7 @@
|
||||
$(SIGNAL_OBJS) \
|
||||
$(MODOBJS) \
|
||||
$(srcdir)/Modules/getbuildinfo.c
|
||||
- $(CC) -c $(PY_CFLAGS) -DSVNVERSION=\"`LC_ALL=C $(SVNVERSION)`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
+ $(CC) -c $(PY_CFLAGS) -DSVNVERSION="\"`LC_ALL=C $(SVNVERSION)`\"" -o $@ $(srcdir)/Modules/getbuildinfo.c
|
||||
|
||||
Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
|
||||
$(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
|
||||
--- Modules/getbuildinfo.c
|
||||
+++ Modules/getbuildinfo.c
|
||||
@@ -48,5 +48,5 @@
|
||||
static const char svnversion[] = SVNVERSION;
|
||||
if (svnversion[0] != '$')
|
||||
return svnversion; /* it was interpolated, or passed on command line */
|
||||
- return "exported";
|
||||
+ return "Unversioned directory";
|
||||
}
|
||||
--- Python/sysmodule.c
|
||||
+++ Python/sysmodule.c
|
||||
@@ -1161,7 +1161,7 @@
|
||||
|
||||
|
||||
svnversion = _Py_svnversion();
|
||||
- if (strcmp(svnversion, "exported") != 0)
|
||||
+ if (strcmp(svnversion, "Unversioned directory") != 0 && strcmp(svnversion, "exported") != 0)
|
||||
svn_revision = svnversion;
|
||||
else if (istag) {
|
||||
len = strlen(_patchlevel_revision);
|
||||
@@ -0,0 +1,75 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-3.0.1/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2009-01-04 08:47:58.000000000 +0900
|
||||
+++ ../Python-3.0.1/Lib/ssl.py 2013-05-08 19:58:59.000000000 +0900
|
||||
@@ -60,8 +60,20 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import (PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||
+from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||
PROTOCOL_TLSv1)
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import (
|
||||
SSL_ERROR_ZERO_RETURN,
|
||||
@@ -434,13 +446,4 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
diff -r -u ./Modules/_ssl.c ../Python-3.0.1/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2009-02-03 05:41:29.000000000 +0900
|
||||
+++ ../Python-3.0.1/Modules/_ssl.c 2013-05-08 19:57:38.000000000 +0900
|
||||
@@ -62,7 +62,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1,
|
||||
@@ -299,8 +301,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1691,8 +1695,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Barry Warsaw <barry@python.org>
|
||||
# Date 1302190091 14400
|
||||
# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa
|
||||
# Parent 2e4cdaffe493e879fb5367a4aa454491de451137
|
||||
Backport for Python 2.7 of issue 11715 support for building Python on
|
||||
multiarch Debian/Ubuntu.
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
--- setup.py.orig
|
||||
+++ setup.py
|
||||
@@ -345,10 +345,33 @@ class PyBuildExt(build_ext):
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-3.1.3/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2010-09-14 23:47:08.000000000 +0900
|
||||
+++ ../Python-3.1.3/Lib/ssl.py 2013-05-23 12:03:38.000000000 +0900
|
||||
@@ -60,8 +60,20 @@
|
||||
|
||||
from _ssl import SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import (PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||
+from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||
PROTOCOL_TLSv1)
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import (
|
||||
SSL_ERROR_ZERO_RETURN,
|
||||
@@ -427,13 +439,4 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
diff -r -u ./Modules/_ssl.c ../Python-3.1.3/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2010-10-14 07:20:48.000000000 +0900
|
||||
+++ ../Python-3.1.3/Modules/_ssl.c 2013-05-23 12:04:31.000000000 +0900
|
||||
@@ -63,7 +63,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -306,8 +308,10 @@
|
||||
self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
self->ctx = SSL_CTX_new(SSLv2_method()); /* Set up context */
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
self->ctx = SSL_CTX_new(SSLv23_method()); /* Set up context */
|
||||
PySSL_END_ALLOW_THREADS
|
||||
@@ -1785,8 +1789,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
@@ -0,0 +1,38 @@
|
||||
--- setup.py.orig 2011-07-07 20:26:15.000000000 +0900
|
||||
+++ setup.py 2011-07-07 20:29:28.735543350 +0900
|
||||
@@ -370,12 +370,35 @@
|
||||
return platform
|
||||
return sys.platform
|
||||
|
||||
+ def add_multiarch_paths(self):
|
||||
+ # Debian/Ubuntu multiarch support.
|
||||
+ # https://wiki.ubuntu.com/MultiarchSpec
|
||||
+ if not find_executable('dpkg-architecture'):
|
||||
+ return
|
||||
+ tmpfile = os.path.join(self.build_temp, 'multiarch')
|
||||
+ if not os.path.exists(self.build_temp):
|
||||
+ os.makedirs(self.build_temp)
|
||||
+ ret = os.system(
|
||||
+ 'dpkg-architecture -qDEB_HOST_MULTIARCH > %s 2> /dev/null' %
|
||||
+ tmpfile)
|
||||
+ try:
|
||||
+ if ret >> 8 == 0:
|
||||
+ with open(tmpfile) as fp:
|
||||
+ multiarch_path_component = fp.readline().strip()
|
||||
+ add_dir_to_list(self.compiler.library_dirs,
|
||||
+ '/usr/lib/' + multiarch_path_component)
|
||||
+ add_dir_to_list(self.compiler.include_dirs,
|
||||
+ '/usr/include/' + multiarch_path_component)
|
||||
+ finally:
|
||||
+ os.unlink(tmpfile)
|
||||
+
|
||||
def detect_modules(self):
|
||||
# Ensure that /usr/local is always used, but the local build
|
||||
# directories (i.e. '.' and 'Include') must be first. See issue
|
||||
# 10520.
|
||||
add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib')
|
||||
add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')
|
||||
+ self.add_multiarch_paths()
|
||||
|
||||
# Add paths specified in the environment variables LDFLAGS and
|
||||
# CPPFLAGS for header and library files.
|
||||
@@ -0,0 +1,75 @@
|
||||
diff -r -u ./Lib/ssl.py ../Python-3.2/Lib/ssl.py
|
||||
--- ./Lib/ssl.py 2010-10-23 03:19:07.000000000 +0900
|
||||
+++ ../Python-3.2/Lib/ssl.py 2013-05-23 11:56:30.000000000 +0900
|
||||
@@ -62,8 +62,20 @@
|
||||
from _ssl import OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_INFO, OPENSSL_VERSION
|
||||
from _ssl import _SSLContext, SSLError
|
||||
from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED
|
||||
-from _ssl import (PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||
+from _ssl import (PROTOCOL_SSLv3, PROTOCOL_SSLv23,
|
||||
PROTOCOL_TLSv1)
|
||||
+_PROTOCOL_NAMES = {
|
||||
+ PROTOCOL_TLSv1: "TLSv1",
|
||||
+ PROTOCOL_SSLv23: "SSLv23",
|
||||
+ PROTOCOL_SSLv3: "SSLv3",
|
||||
+}
|
||||
+try:
|
||||
+ from _ssl import PROTOCOL_SSLv2
|
||||
+ _SSLv2_IF_EXISTS = PROTOCOL_SSLv2
|
||||
+except ImportError:
|
||||
+ _SSLv2_IF_EXISTS = None
|
||||
+else:
|
||||
+ _PROTOCOL_NAMES[PROTOCOL_SSLv2] = "SSLv2"
|
||||
from _ssl import OP_ALL, OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_TLSv1
|
||||
from _ssl import RAND_status, RAND_egd, RAND_add
|
||||
from _ssl import (
|
||||
@@ -537,13 +549,4 @@
|
||||
return DER_cert_to_PEM_cert(dercert)
|
||||
|
||||
def get_protocol_name(protocol_code):
|
||||
- if protocol_code == PROTOCOL_TLSv1:
|
||||
- return "TLSv1"
|
||||
- elif protocol_code == PROTOCOL_SSLv23:
|
||||
- return "SSLv23"
|
||||
- elif protocol_code == PROTOCOL_SSLv2:
|
||||
- return "SSLv2"
|
||||
- elif protocol_code == PROTOCOL_SSLv3:
|
||||
- return "SSLv3"
|
||||
- else:
|
||||
- return "<unknown>"
|
||||
+ return _PROTOCOL_NAMES.get(protocol_code, '<unknown>')
|
||||
diff -r -u ./Modules/_ssl.c ../Python-3.2/Modules/_ssl.c
|
||||
--- ./Modules/_ssl.c 2011-01-29 20:31:20.000000000 +0900
|
||||
+++ ../Python-3.2/Modules/_ssl.c 2013-05-23 11:57:44.000000000 +0900
|
||||
@@ -63,7 +63,9 @@
|
||||
};
|
||||
|
||||
enum py_ssl_version {
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PY_SSL_VERSION_SSL2,
|
||||
+#endif
|
||||
PY_SSL_VERSION_SSL3,
|
||||
PY_SSL_VERSION_SSL23,
|
||||
PY_SSL_VERSION_TLS1
|
||||
@@ -1450,8 +1452,10 @@
|
||||
ctx = SSL_CTX_new(TLSv1_method());
|
||||
else if (proto_version == PY_SSL_VERSION_SSL3)
|
||||
ctx = SSL_CTX_new(SSLv3_method());
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
else if (proto_version == PY_SSL_VERSION_SSL2)
|
||||
ctx = SSL_CTX_new(SSLv2_method());
|
||||
+#endif
|
||||
else if (proto_version == PY_SSL_VERSION_SSL23)
|
||||
ctx = SSL_CTX_new(SSLv23_method());
|
||||
else
|
||||
@@ -2110,8 +2114,10 @@
|
||||
PY_SSL_CERT_REQUIRED);
|
||||
|
||||
/* protocol versions */
|
||||
+#ifndef OPENSSL_NO_SSL2
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv2",
|
||||
PY_SSL_VERSION_SSL2);
|
||||
+#endif
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv3",
|
||||
PY_SSL_VERSION_SSL3);
|
||||
PyModule_AddIntConstant(m, "PROTOCOL_SSLv23",
|
||||
28
plugins/python-build/share/python-build/pypy-1.5
Normal file
28
plugins/python-build/share/python-build/pypy-1.5
Normal file
@@ -0,0 +1,28 @@
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
install_package "pypy-c-jit-43780-b590cf6de419-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-osx64.tar.bz2#b1417916bc01ebb9f95c666f5e397fb5" pypy verify_py27
|
||||
;;
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||
install_package "pypy-c-jit-43780-b590cf6de419-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-linux.tar.bz2#08a2c95163c95f91772abb8bf5f8b9cb" pypy verify_py27
|
||||
;;
|
||||
"x86_64" )
|
||||
install_package "pypy-c-jit-43780-b590cf6de419-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-linux64.tar.bz2#32392b7986eb34cd657d5b6c5d242cc7" pypy verify_py27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"CYGWIN"* | "MINGW"* )
|
||||
# FIXME: never tested on Windows
|
||||
install_zip "pypy-1.5.0a0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-win32.zip#b6cc12bed5e7243ed44aa3430eb14885" pypy verify_py27
|
||||
;;
|
||||
* )
|
||||
{ echo "Precompiled binary of pypy-1.5 is not available for $(uname -s)-$(uname -m)."
|
||||
echo "To build pypy-1.5 from soruce, use 'pypy-1.5-src'."
|
||||
} 1>&4 2>&1
|
||||
false
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
4
plugins/python-build/share/python-build/pypy-1.5-src
Normal file
4
plugins/python-build/share/python-build/pypy-1.5-src
Normal file
@@ -0,0 +1,4 @@
|
||||
require_gcc
|
||||
install_package "pypy-1.5-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-src.tar.bz2" "pypy_builder" verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
27
plugins/python-build/share/python-build/pypy-1.6
Normal file
27
plugins/python-build/share/python-build/pypy-1.6
Normal file
@@ -0,0 +1,27 @@
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
install_package "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-osx64.tar.bz2#78bbf70f55e9fec20d7ac22531a997fc" pypy verify_py27
|
||||
;;
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||
install_package "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-linux.tar.bz2#ee949986fc5ec5c4a11ecbd546b87fbb" pypy verify_py27
|
||||
;;
|
||||
"x86_64" )
|
||||
install_package "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-linux64.tar.bz2#a34e3113508449393e874f409dd888fc" pypy verify_py27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"CYGWIN"* | "MINGW"* )
|
||||
# FIXME: never tested on Windows
|
||||
install_zip "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-win32-c.zip#62b9eb914954aeab32905d632d3904f1" pypy verify_py27
|
||||
;;
|
||||
* )
|
||||
{ echo "Precompiled binary of pypy-1.6 is not available for $(uname -s)-$(uname -m)."
|
||||
} 1>&4 2>&1
|
||||
false
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
28
plugins/python-build/share/python-build/pypy-1.7
Normal file
28
plugins/python-build/share/python-build/pypy-1.7
Normal file
@@ -0,0 +1,28 @@
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
install_package "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-osx64.tar.bz2#ff979054fc8e17b4973ffebb9844b159" pypy verify_py27
|
||||
;;
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||
install_package "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux.tar.bz2#8a6e2583902bc6f2661eb3c96b45f4e3" pypy verify_py27
|
||||
;;
|
||||
"x86_64" )
|
||||
install_package "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux64.tar.bz2#ceb8dfe7d9d1aeb558553b91b381a1a8" pypy verify_py27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"CYGWIN"* | "MINGW"* )
|
||||
# FIXME: never tested on Windows
|
||||
install_zip "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-win32.zip#08de1ed4a4382559b1c4c46650f4a8e8" pypy verify_py27
|
||||
;;
|
||||
* )
|
||||
{ echo "Precompiled binary of pypy-1.7 is not available for $(uname -s)-$(uname -m)."
|
||||
echo "To build pypy-1.7 from soruce, use 'pypy-1.7-dev'."
|
||||
} 1>&4 2>&1
|
||||
false
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
4
plugins/python-build/share/python-build/pypy-1.7-dev
Normal file
4
plugins/python-build/share/python-build/pypy-1.7-dev
Normal file
@@ -0,0 +1,4 @@
|
||||
require_gcc
|
||||
install_hg "pypy-1.7-dev" "https://bitbucket.org/pypy/pypy" "release-1.7.x" "pypy_builder" verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,24 +1,28 @@
|
||||
case "$OSTYPE" in
|
||||
darwin*)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-osx64.tar.bz2#1c293253e8e4df411c3dd59dff82a663"
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-osx64.tar.bz2#1c293253e8e4df411c3dd59dff82a663" pypy verify_py27
|
||||
;;
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
i386|i486|i586|i686)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux.tar.bz2#c4a1d11e0283a390d9e9b801a4633b9f"
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||
install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux.tar.bz2#c4a1d11e0283a390d9e9b801a4633b9f" pypy verify_py27
|
||||
;;
|
||||
x86_64)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2#3b81363ccbc042dfdda2fabbf419e788"
|
||||
"x86_64" )
|
||||
install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2#3b81363ccbc042dfdda2fabbf419e788" pypy verify_py27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
cygwin*|mingw*)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-win32.zip#1af8ee722721e9f5fd06b61af530ecb3"
|
||||
"CYGWIN"* | "MINGW"* )
|
||||
# FIXME: never tested on Windows
|
||||
install_zip "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-win32.zip#1af8ee722721e9f5fd06b61af530ecb3" pypy verify_py27
|
||||
;;
|
||||
* )
|
||||
{ echo "Precompiled binary of pypy-1.8 is not available for $(uname -s)-$(uname -m)."
|
||||
echo "To build pypy-1.8 from soruce, use 'pypy-1.8-dev'."
|
||||
} 1>&4 2>&1
|
||||
false
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$PYPY_URL" ]; then
|
||||
install_package "pypy-1.8" "$PYPY_URL" pypy
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
fi
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
4
plugins/python-build/share/python-build/pypy-1.8-dev
Normal file
4
plugins/python-build/share/python-build/pypy-1.8-dev
Normal file
@@ -0,0 +1,4 @@
|
||||
require_gcc
|
||||
install_hg "pypy-1.8-dev" "https://bitbucket.org/pypy/pypy" "release-1.8.x" "pypy_builder" verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
@@ -1,24 +1,28 @@
|
||||
case "$OSTYPE" in
|
||||
darwin*)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-osx64.tar.bz2#aad9c4b7b827583e37fe8ae0f7cfe0ff"
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-osx64.tar.bz2#aad9c4b7b827583e37fe8ae0f7cfe0ff" pypy verify_py27
|
||||
;;
|
||||
linux*)
|
||||
case $(uname -m) in
|
||||
i386|i486|i586|i686)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux.tar.bz2#1a08c88642434fc2e0e4256d351f48db"
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||
install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux.tar.bz2#1a08c88642434fc2e0e4256d351f48db" pypy verify_py27
|
||||
;;
|
||||
x86_64)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2#201d2cce2557e40c784473b471ee1b6b"
|
||||
"x86_64" )
|
||||
install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2#201d2cce2557e40c784473b471ee1b6b" pypy verify_py27
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
cygwin*|mingw*)
|
||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-win32.zip#e7655066baed3c7bbbca7df617817dd5"
|
||||
"CYGWIN"* | "MINGW"* )
|
||||
# FIXME: never tested on Windows
|
||||
install_zip "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-win32.zip#e7655066baed3c7bbbca7df617817dd5" pypy verify_py27
|
||||
;;
|
||||
* )
|
||||
{ echo "Precompiled binary of pypy-1.9 is not available for $(uname -s)-$(uname -m)."
|
||||
echo "To build pypy-1.9 from soruce, use 'pypy-1.9-dev'."
|
||||
} 1>&4 2>&1
|
||||
false
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -n "$PYPY_URL" ]; then
|
||||
install_package "pypy-1.9" "$PYPY_URL" pypy
|
||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
||||
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
||||
fi
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
|
||||
4
plugins/python-build/share/python-build/pypy-1.9-dev
Normal file
4
plugins/python-build/share/python-build/pypy-1.9-dev
Normal file
@@ -0,0 +1,4 @@
|
||||
require_gcc
|
||||
install_hg "pypy-1.9-dev" "https://bitbucket.org/pypy/pypy" "release-1.9.x" "pypy_builder" verify_py27
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
33
plugins/python-build/share/python-build/pypy-2.0
Normal file
33
plugins/python-build/share/python-build/pypy-2.0
Normal file
@@ -0,0 +1,33 @@
|
||||
case "$(uname -s)" in
|
||||
"Darwin" )
|
||||
install_package "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-osx64.tar.bz2#39837722da4a03ca03eda187aafa13bb" "pypy" verify_py27
|
||||
;;
|
||||
"Linux" )
|
||||
case "$(uname -m)" in
|
||||
"armel" )
|
||||
install_package "pypy-2.0-alpha-arm" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-alpha-arm-armel.tar.bz2#b9c36b99296c85a590c3e480b05d5a13" "pypy" verify_py27
|
||||
;;
|
||||
"armhf" )
|
||||
install_package "pypy-2.0-alpha-arm" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-alpha-arm-armhf.tar.bz2#2565ce68b4032eb306d998e722495694" "pypy" verify_py27
|
||||
;;
|
||||
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||
install_package "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-linux.tar.bz2#267c46ed8c591da19b6091aa90fa9acf" "pypy" verify_py27
|
||||
;;
|
||||
"x86_64" )
|
||||
install_package "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-linux64.tar.bz2#2fe3298ac9354fbdb57a38472936b823" "pypy" verify_py27
|
||||
esac
|
||||
;;
|
||||
"CYGWIN"* | "MINGW"* )
|
||||
# FIXME: never tested on Windows
|
||||
install_zip "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-win32.zip#f0d051c2b612b64dff496a6c0f3654fb" "pypy" verify_py27
|
||||
;;
|
||||
* )
|
||||
{ echo "Precompiled binary of pypy-2.0 is not available for $(uname -s)-$(uname -m)."
|
||||
echo "To build pypy-2.0 from soruce, use 'pypy-2.0-src'."
|
||||
} 1>&4 2>&1
|
||||
false
|
||||
;;
|
||||
esac
|
||||
|
||||
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user