mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-10 12:33:48 -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
|
/shims
|
||||||
/version
|
/version
|
||||||
/versions
|
/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) 2013 Yamashita, Yuu
|
||||||
Copyright (c) 2012 Yamashita, Yuu
|
Copyright (c) 2013 Sam Stephenson
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
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
|
* **Need to be loaded into your shell.** Instead, pyenv's shim
|
||||||
approach works by adding a directory to your `$PATH`.
|
approach works by adding a directory to your `$PATH`.
|
||||||
* **Manage virtualenv.** Of course, you can create [virtualenv](http://pypi.python.org/pypi/virtualenv)
|
* **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.
|
to automate the process.
|
||||||
|
|
||||||
## Table of Contents
|
## Table of Contents
|
||||||
@@ -38,6 +38,7 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
|
|||||||
* [Installation](#installation)
|
* [Installation](#installation)
|
||||||
* [Basic GitHub Checkout](#basic-github-checkout)
|
* [Basic GitHub Checkout](#basic-github-checkout)
|
||||||
* [Upgrading](#upgrading)
|
* [Upgrading](#upgrading)
|
||||||
|
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
|
||||||
* [Neckbeard Configuration](#neckbeard-configuration)
|
* [Neckbeard Configuration](#neckbeard-configuration)
|
||||||
* [Uninstalling Python Versions](#uninstalling-python-versions)
|
* [Uninstalling Python Versions](#uninstalling-python-versions)
|
||||||
* [Command Reference](#command-reference)
|
* [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
|
`~/.pyenv/versions`. For example, you might have these versions
|
||||||
installed:
|
installed:
|
||||||
|
|
||||||
* `~/.pyenv/versions/2.7.3/`
|
* `~/.pyenv/versions/2.7.5/`
|
||||||
* `~/.pyenv/versions/3.3.0/`
|
* `~/.pyenv/versions/3.3.2/`
|
||||||
* `~/.pyenv/versions/pypy-1.9/`
|
* `~/.pyenv/versions/pypy-1.9/`
|
||||||
|
|
||||||
Version names to pyenv are simply the names of the directories in
|
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
|
## Installation
|
||||||
|
|
||||||
|
If you're on Mac OS X, consider
|
||||||
|
[installing with Homebrew](#homebrew-on-mac-os-x).
|
||||||
|
|
||||||
### Basic GitHub Checkout
|
### Basic GitHub Checkout
|
||||||
|
|
||||||
This will get you going with the latest version of pyenv and make it
|
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
|
$ exec $SHELL
|
||||||
|
|
||||||
5. Install Python versions into `~/.pyenv/versions`. For example, to
|
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
|
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,
|
a new Python binary (for example, when installing a new Python version,
|
||||||
@@ -195,6 +202,23 @@ tag:
|
|||||||
v0.1.0
|
v0.1.0
|
||||||
$ git checkout 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
|
### Neckbeard Configuration
|
||||||
|
|
||||||
Skip this section unless you must know what every line in your shell
|
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`
|
the `PYENV_VERSION` environment variable or with the `pyenv shell`
|
||||||
command.
|
command.
|
||||||
|
|
||||||
$ pyenv local 2.7.3
|
$ pyenv local 2.7.5
|
||||||
|
|
||||||
When run without a version number, `pyenv local` reports the currently
|
When run without a version number, `pyenv local` reports the currently
|
||||||
configured local version. You can also unset the local version:
|
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
|
You can specify multiple versions as local Python. Commands
|
||||||
within these Python versions are searched by specified order.
|
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
|
$ pyenv local
|
||||||
2.7.3
|
2.7.5
|
||||||
3.2.3
|
3.2.5
|
||||||
$ pyenv which python2.7
|
$ 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
|
$ 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
|
$ pyenv which python
|
||||||
/home/yyuu/.pyenv/versions/2.7.3/bin/python
|
/home/yyuu/.pyenv/versions/2.7.5/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
|
|
||||||
|
|
||||||
### pyenv global
|
### 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
|
overridden by an application-specific `.python-version` file, or by
|
||||||
setting the `PYENV_VERSION` environment variable.
|
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
|
The special version name `system` tells pyenv to use the system Python
|
||||||
(detected by searching your `$PATH`).
|
(detected by searching your `$PATH`).
|
||||||
@@ -315,30 +325,16 @@ currently configured global version.
|
|||||||
You can specify multiple versions as global Python. Commands
|
You can specify multiple versions as global Python. Commands
|
||||||
within these Python versions are searched by specified order.
|
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
|
$ pyenv global
|
||||||
2.7.3
|
2.7.5
|
||||||
3.2.3
|
3.2.5
|
||||||
$ pyenv which python2.7
|
$ 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
|
$ 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
|
$ pyenv which python
|
||||||
/home/yyuu/.pyenv/versions/2.7.3/bin/python
|
/home/yyuu/.pyenv/versions/2.7.5/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
|
|
||||||
|
|
||||||
### pyenv shell
|
### 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`
|
You can specify multiple versions via `PYENV_VERSION`
|
||||||
environment variable in your shell.
|
environment variable in your shell.
|
||||||
|
|
||||||
$ pyenv shell pypy-1.9 2.7.3
|
$ pyenv shell pypy-1.9 2.7.5
|
||||||
$ echo $PYENV_VERSION
|
$ echo $PYENV_VERSION
|
||||||
pypy-1.9:2.7.3
|
pypy-1.9:2.7.5
|
||||||
$ pyenv version
|
$ pyenv version
|
||||||
pypy-1.9 (set by PYENV_VERSION environment variable)
|
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
|
### pyenv versions
|
||||||
|
|
||||||
@@ -380,8 +376,8 @@ the currently active version.
|
|||||||
$ pyenv versions
|
$ pyenv versions
|
||||||
2.5.6
|
2.5.6
|
||||||
2.6.8
|
2.6.8
|
||||||
* 2.7.3 (set by /home/yyuu/.pyenv/version)
|
* 2.7.5 (set by /home/yyuu/.pyenv/version)
|
||||||
3.2.3
|
3.2.5
|
||||||
jython-2.5.3
|
jython-2.5.3
|
||||||
pypy-1.9
|
pypy-1.9
|
||||||
|
|
||||||
@@ -391,7 +387,7 @@ Displays the currently active Python version, along with information on
|
|||||||
how it was set.
|
how it was set.
|
||||||
|
|
||||||
$ pyenv version
|
$ pyenv version
|
||||||
2.7.3 (set by /home/yyuu/.pyenv/version)
|
2.7.5 (set by /home/yyuu/.pyenv/version)
|
||||||
|
|
||||||
### pyenv rehash
|
### pyenv rehash
|
||||||
|
|
||||||
@@ -407,7 +403,7 @@ Displays the full path to the executable that pyenv will invoke when
|
|||||||
you run the given command.
|
you run the given command.
|
||||||
|
|
||||||
$ pyenv which python3.2
|
$ 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
|
### pyenv whence
|
||||||
|
|
||||||
@@ -415,8 +411,8 @@ Lists all Python versions with the given command installed.
|
|||||||
|
|
||||||
$ pyenv whence 2to3
|
$ pyenv whence 2to3
|
||||||
2.6.8
|
2.6.8
|
||||||
2.7.3
|
2.7.5
|
||||||
3.2.3
|
3.2.5
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
@@ -429,30 +425,15 @@ tracker](https://github.com/yyuu/pyenv/issues).
|
|||||||
|
|
||||||
### Version History
|
### 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
|
### License
|
||||||
|
|
||||||
(The MIT license)
|
(The MIT license)
|
||||||
|
|
||||||
* Copyright (c) 2011 Sam Stephenson
|
* Copyright (c) 2013 Yamashita, Yuu
|
||||||
* Copyright (c) 2012 Yamashita, Yuu
|
* Copyright (c) 2013 Sam Stephenson
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
a copy of this software and associated documentation files (the
|
a copy of this software and associated documentation files (the
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ _pyenv() {
|
|||||||
if [ "${#words}" -eq 2 ]; then
|
if [ "${#words}" -eq 2 ]; then
|
||||||
completions="$(pyenv commands)"
|
completions="$(pyenv commands)"
|
||||||
else
|
else
|
||||||
completions="$(pyenv completions "${words[2,-1]}")"
|
completions="$(pyenv completions "${words[2,-2]}")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
reply=("${(ps:\n:)completions}")
|
reply=("${(ps:\n:)completions}")
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
set -e
|
set -e
|
||||||
[ -n "$PYENV_DEBUG" ] && set -x
|
[ -n "$PYENV_DEBUG" ] && set -x
|
||||||
|
|
||||||
version="0.2.0"
|
version="0.4.0-20130613"
|
||||||
|
|
||||||
cd "$PYENV_ROOT"
|
cd "$PYENV_ROOT"
|
||||||
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
|
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ fi
|
|||||||
PYENV_PREFIX_PATHS=()
|
PYENV_PREFIX_PATHS=()
|
||||||
for version in "${versions[@]}"; do
|
for version in "${versions[@]}"; do
|
||||||
if [ "$version" = "system" ]; then
|
if [ "$version" = "system" ]; then
|
||||||
PYTHON_PATH="$(pyenv-which python || true)"
|
PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python || true)"
|
||||||
PYENV_PREFIX_PATH="${PYTHON_PATH%/*}"
|
PYENV_PREFIX_PATH="${PYTHON_PATH%/*}"
|
||||||
else
|
else
|
||||||
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
|
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
|
||||||
|
|||||||
@@ -23,8 +23,6 @@ version_exists() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for version in "${versions[@]}"; do
|
for version in "${versions[@]}"; do
|
||||||
PYENV_VERSION_PATH="${PYENV_ROOT}/versions/${version}"
|
|
||||||
|
|
||||||
if [ "$version" != "system" ] && ! version_exists "$version"; then
|
if [ "$version" != "system" ] && ! version_exists "$version"; then
|
||||||
echo "pyenv: version \`$version' is not installed" >&2
|
echo "pyenv: version \`$version' is not installed" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|||||||
1
plugins/.gitignore
vendored
1
plugins/.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
/*
|
/*
|
||||||
!/.gitignore
|
!/.gitignore
|
||||||
|
!/version-ext-compat
|
||||||
!/python-build
|
!/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
|
# Summary: Install a Python version using the python-build plugin
|
||||||
#
|
#
|
||||||
# Usage: pyenv install [-f|--force] [-k|--keep] [-v|--verbose] <version>
|
# Usage: pyenv install [-f|--force] [-g|--debug] [-k|--keep] [-v|--verbose] <version>
|
||||||
# pyenv install [-f|--force] [-k|--keep] [-v|--verbose] <definition-file>
|
# pyenv install [-f|--force] [-g|--debug] [-k|--keep] [-v|--verbose] <definition-file>
|
||||||
# pyenv install -l|--list
|
# pyenv install -l|--list
|
||||||
#
|
#
|
||||||
# -l/--list List all available versions
|
# -l/--list List all available versions
|
||||||
# -f/--force Install even if the version appears to be installed already
|
# -f/--force Install even if the version appears to be installed already
|
||||||
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
|
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
|
||||||
# (defaults to $PYENV_ROOT/sources)
|
# (defaults to $PYENV_ROOT/sources)
|
||||||
|
# -g/--debug Build a debug version
|
||||||
# -v/--verbose Verbose mode: print compilation status to stdout
|
# -v/--verbose Verbose mode: print compilation status to stdout
|
||||||
#
|
#
|
||||||
# For detailed information on installing Python versions with
|
# For detailed information on installing Python versions with
|
||||||
@@ -37,9 +38,19 @@ usage() {
|
|||||||
[ -z "$1" ] || exit "$1"
|
[ -z "$1" ] || exit "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
definitions() {
|
||||||
|
local query="$1"
|
||||||
|
python-build --definitions | grep -F "$query" || true
|
||||||
|
}
|
||||||
|
|
||||||
|
indent() {
|
||||||
|
sed 's/^/ /'
|
||||||
|
}
|
||||||
|
|
||||||
unset FORCE
|
unset FORCE
|
||||||
unset KEEP
|
unset KEEP
|
||||||
unset VERBOSE
|
unset VERBOSE
|
||||||
|
unset DEBUG
|
||||||
|
|
||||||
parse_options "$@"
|
parse_options "$@"
|
||||||
for option in "${OPTIONS[@]}"; do
|
for option in "${OPTIONS[@]}"; do
|
||||||
@@ -49,7 +60,7 @@ for option in "${OPTIONS[@]}"; do
|
|||||||
;;
|
;;
|
||||||
"l" | "list" )
|
"l" | "list" )
|
||||||
echo "Available versions:"
|
echo "Available versions:"
|
||||||
python-build --definitions | sed 's/^/ /'
|
definitions | indent
|
||||||
exit
|
exit
|
||||||
;;
|
;;
|
||||||
"f" | "force" )
|
"f" | "force" )
|
||||||
@@ -61,6 +72,9 @@ for option in "${OPTIONS[@]}"; do
|
|||||||
"v" | "verbose" )
|
"v" | "verbose" )
|
||||||
VERBOSE="-v"
|
VERBOSE="-v"
|
||||||
;;
|
;;
|
||||||
|
"g" | "debug" )
|
||||||
|
DEBUG="-g"
|
||||||
|
;;
|
||||||
"version" )
|
"version" )
|
||||||
exec python-build --version
|
exec python-build --version
|
||||||
;;
|
;;
|
||||||
@@ -105,8 +119,11 @@ done
|
|||||||
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
|
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
|
||||||
# compute the installation prefix.
|
# compute the installation prefix.
|
||||||
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
|
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
|
||||||
|
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
|
||||||
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
|
||||||
|
|
||||||
|
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
|
||||||
|
|
||||||
# If the installation prefix exists, prompt for confirmation unless
|
# If the installation prefix exists, prompt for confirmation unless
|
||||||
# the --force option was specified.
|
# the --force option was specified.
|
||||||
if [ -z "$FORCE" ] && [ -d "${PREFIX}/bin" ]; then
|
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"
|
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
|
||||||
fi
|
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.
|
# Execute `before_install` hooks.
|
||||||
for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
for hook in "${before_hooks[@]}"; do eval "$hook"; done
|
||||||
|
|
||||||
# Invoke `python-build` and record the exit status in $STATUS. Run
|
# Plan cleanup on unsuccessful installation.
|
||||||
# `pyenv rehash` after a successful installation.
|
cleanup() {
|
||||||
|
[ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX"
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup SIGINT
|
||||||
|
|
||||||
|
# Invoke `python-build` and record the exit status in $STATUS.
|
||||||
STATUS=0
|
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.
|
# Execute `after_install` hooks.
|
||||||
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
for hook in "${after_hooks[@]}"; do eval "$hook"; done
|
||||||
|
|
||||||
# Run `pyenv-rehash` after a successful installation.
|
# Run `pyenv-rehash` after a successful installation.
|
||||||
[ "$STATUS" != "0" ] || pyenv rehash
|
if [ "$STATUS" == "0" ]; then
|
||||||
|
pyenv rehash
|
||||||
|
else
|
||||||
|
cleanup
|
||||||
|
fi
|
||||||
|
|
||||||
exit "$STATUS"
|
exit "$STATUS"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
PYTHON_BUILD_VERSION="20121023"
|
PYTHON_BUILD_VERSION="20130518"
|
||||||
|
|
||||||
set -E
|
set -E
|
||||||
exec 3<&2 # preserve original stderr at fd 3
|
exec 3<&2 # preserve original stderr at fd 3
|
||||||
@@ -57,6 +57,14 @@ abs_dirname() {
|
|||||||
cd "$cwd"
|
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() {
|
build_failed() {
|
||||||
{ echo
|
{ echo
|
||||||
echo "BUILD FAILED"
|
echo "BUILD FAILED"
|
||||||
@@ -89,19 +97,27 @@ file_is_not_empty() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
install_package() {
|
install_package() {
|
||||||
install_package_using "tarball" 1 $*
|
install_package_using "tarball" 1 "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_git() {
|
install_git() {
|
||||||
install_package_using "git" 2 $*
|
install_package_using "git" 2 "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_hg() {
|
||||||
|
install_package_using "hg" 2 "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_svn() {
|
install_svn() {
|
||||||
install_package_using "svn" 2 $*
|
install_package_using "svn" 2 "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_jar() {
|
install_jar() {
|
||||||
install_package_using "jar" 1 $*
|
install_package_using "jar" 1 "$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
install_zip() {
|
||||||
|
install_package_using "zip" 1 "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
install_package_using() {
|
install_package_using() {
|
||||||
@@ -110,10 +126,22 @@ install_package_using() {
|
|||||||
local package_name="$3"
|
local package_name="$3"
|
||||||
shift 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
|
pushd "$BUILD_PATH" >&4
|
||||||
"fetch_${package_type}" "$package_name" $*
|
"fetch_${package_type}" "${fetch_args[@]}"
|
||||||
shift $(($package_type_nargs))
|
make_package "${make_args[@]}"
|
||||||
make_package "$package_name" $*
|
|
||||||
popd >&4
|
popd >&4
|
||||||
|
|
||||||
{ echo "Installed ${package_name} to ${PREFIX_PATH}"
|
{ echo "Installed ${package_name} to ${PREFIX_PATH}"
|
||||||
@@ -121,12 +149,31 @@ install_package_using() {
|
|||||||
} >&2
|
} >&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() {
|
make_package() {
|
||||||
local package_name="$1"
|
local package_name="$1"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
pushd "$package_name" >&4
|
pushd "$package_name" >&4
|
||||||
before_install_package "$package_name"
|
before_install_package "$package_name"
|
||||||
|
apply_patches "$package_name"
|
||||||
build_package "$package_name" $*
|
build_package "$package_name" $*
|
||||||
after_install_package "$package_name"
|
after_install_package "$package_name"
|
||||||
fix_directory_permissions
|
fix_directory_permissions
|
||||||
@@ -176,12 +223,13 @@ verify_checksum() {
|
|||||||
http() {
|
http() {
|
||||||
local method="$1"
|
local method="$1"
|
||||||
local url="$2"
|
local url="$2"
|
||||||
|
local file="$3"
|
||||||
[ -n "$url" ] || return 1
|
[ -n "$url" ] || return 1
|
||||||
|
|
||||||
if type curl &>/dev/null; then
|
if type curl &>/dev/null; then
|
||||||
"http_${method}_curl" "$url"
|
"http_${method}_curl" "$url" "$file"
|
||||||
elif type wget &>/dev/null; then
|
elif type wget &>/dev/null; then
|
||||||
"http_${method}_wget" "$url"
|
"http_${method}_wget" "$url" "$file"
|
||||||
else
|
else
|
||||||
echo "error: please install \`curl\` or \`wget\` and try again" >&2
|
echo "error: please install \`curl\` or \`wget\` and try again" >&2
|
||||||
exit 1
|
exit 1
|
||||||
@@ -189,11 +237,11 @@ http() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
http_head_curl() {
|
http_head_curl() {
|
||||||
curl -sILf "$1" >&4 2>&1
|
curl -qsILf "$1" >&4 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
http_get_curl() {
|
http_get_curl() {
|
||||||
curl -sSLf "$1"
|
curl -C - -o "${2:--}" -qsSLf "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
http_head_wget() {
|
http_head_wget() {
|
||||||
@@ -201,7 +249,7 @@ http_head_wget() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
http_get_wget() {
|
http_get_wget() {
|
||||||
wget -nv -O- "$1"
|
wget -nv -c -O "${2:--}" "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch_tarball() {
|
fetch_tarball() {
|
||||||
@@ -219,7 +267,18 @@ fetch_tarball() {
|
|||||||
fi
|
fi
|
||||||
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" || {
|
symlink_tarball_from_cache "$package_filename" "$checksum" || {
|
||||||
echo "Downloading ${package_filename}..." >&2
|
echo "Downloading ${package_filename}..." >&2
|
||||||
{ http head "$mirror_url" &&
|
{ http head "$mirror_url" &&
|
||||||
@@ -228,8 +287,13 @@ fetch_tarball() {
|
|||||||
download_tarball "$package_url" "$package_filename" "$checksum"
|
download_tarball "$package_url" "$package_filename" "$checksum"
|
||||||
}
|
}
|
||||||
|
|
||||||
{ tar xvf "$package_filename"
|
{ if tar xvf "$package_filename"; then
|
||||||
|
if [ -z "$KEEP_BUILD_PATH" ]; then
|
||||||
rm -f "$package_filename"
|
rm -f "$package_filename"
|
||||||
|
else
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
} >&4 2>&1
|
} >&4 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +318,7 @@ download_tarball() {
|
|||||||
|
|
||||||
echo "-> $package_url" >&2
|
echo "-> $package_url" >&2
|
||||||
|
|
||||||
{ http get "$package_url" > "$package_filename"
|
{ http get "$package_url" "$package_filename"
|
||||||
verify_checksum "$package_filename" "$checksum"
|
verify_checksum "$package_filename" "$checksum"
|
||||||
} >&4 2>&1 || return 1
|
} >&4 2>&1 || return 1
|
||||||
|
|
||||||
@@ -274,6 +338,20 @@ fetch_git() {
|
|||||||
echo "Cloning ${git_url}..." >&2
|
echo "Cloning ${git_url}..." >&2
|
||||||
|
|
||||||
if type git &>/dev/null; then
|
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
|
git clone --depth 1 --branch "$git_ref" "$git_url" "${package_name}" >&4 2>&1
|
||||||
else
|
else
|
||||||
echo "error: please install \`git\` and try again" >&2
|
echo "error: please install \`git\` and try again" >&2
|
||||||
@@ -281,6 +359,38 @@ fetch_git() {
|
|||||||
fi
|
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() {
|
fetch_svn() {
|
||||||
local package_name="$1"
|
local package_name="$1"
|
||||||
local svn_url="$2"
|
local svn_url="$2"
|
||||||
@@ -312,7 +422,7 @@ fetch_jar() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local package_filename="${package_name}.jar"
|
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
|
echo "Downloading ${package_filename}..." >&2
|
||||||
{ http head "$mirror_url" &&
|
{ http head "$mirror_url" &&
|
||||||
download_jar "$mirror_url" "$package_filename" "$checksum"
|
download_jar "$mirror_url" "$package_filename" "$checksum"
|
||||||
@@ -332,6 +442,48 @@ download_jar() {
|
|||||||
download_tarball "$@"
|
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() {
|
build_package() {
|
||||||
local package_name="$1"
|
local package_name="$1"
|
||||||
shift
|
shift
|
||||||
@@ -345,20 +497,18 @@ build_package() {
|
|||||||
echo "Installing ${package_name}..." >&2
|
echo "Installing ${package_name}..." >&2
|
||||||
|
|
||||||
for command in $commands; do
|
for command in $commands; do
|
||||||
"build_package_${command}"
|
"build_package_${command}" "$package_name"
|
||||||
done
|
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
|
package_option() {
|
||||||
done
|
local package_name="$1"
|
||||||
fi
|
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() {
|
build_package_standard() {
|
||||||
@@ -370,10 +520,38 @@ build_package_standard() {
|
|||||||
MAKE_OPTS="-j 2"
|
MAKE_OPTS="-j 2"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
{ ./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
|
# Support PYTHON_CONFIGURE_OPTS, etc.
|
||||||
"$MAKE" $MAKE_OPTS
|
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
|
"$MAKE" install
|
||||||
} >&4 2>&1
|
} >&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() {
|
build_package_autoconf() {
|
||||||
@@ -389,20 +567,40 @@ build_package_python() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
build_package_jython() {
|
build_package_jython() {
|
||||||
{
|
|
||||||
build_package_copy
|
build_package_copy
|
||||||
cd "${PREFIX_PATH}/bin"
|
{ if [ -x "${PREFIX_PATH}/bin/jython" ] && [ ! -x "${PREFIX_PATH}/bin/python" ]; then
|
||||||
ln -fs jython python
|
( 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() {
|
build_package_pypy() {
|
||||||
{
|
build_package_copy
|
||||||
mkdir -p "$PREFIX_PATH"
|
{ if [ -x "${PREFIX_PATH}/bin/pypy" ] && [ ! -x "${PREFIX_PATH}/bin/python" ]; then
|
||||||
cp -R . "$PREFIX_PATH"
|
( cd "${PREFIX_PATH}/bin" && ln -fs pypy python )
|
||||||
cd "${PREFIX_PATH}/bin"
|
fi
|
||||||
ln -fs pypy python
|
} >&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() {
|
build_package_copy() {
|
||||||
@@ -433,12 +631,6 @@ require_gcc() {
|
|||||||
echo "find a suitable \`gcc\` executable on your system. Please install GCC"
|
echo "find a suitable \`gcc\` executable on your system. Please install GCC"
|
||||||
echo "and try again."
|
echo "and try again."
|
||||||
echo
|
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
|
} >&3
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
@@ -490,6 +682,147 @@ verify_gcc() {
|
|||||||
echo "$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() {
|
require_java() {
|
||||||
local java="$(locate_java || true)"
|
local java="$(locate_java || true)"
|
||||||
|
|
||||||
@@ -557,7 +890,7 @@ version() {
|
|||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
{ version
|
{ 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"
|
echo " python-build --definitions"
|
||||||
} >&2
|
} >&2
|
||||||
|
|
||||||
@@ -568,7 +901,7 @@ usage() {
|
|||||||
|
|
||||||
list_definitions() {
|
list_definitions() {
|
||||||
{ for definition in "${PYTHON_BUILD_ROOT}/share/python-build/"*; do
|
{ for definition in "${PYTHON_BUILD_ROOT}/share/python-build/"*; do
|
||||||
echo "${definition##*/}"
|
[ -f "${definition}" ] && echo "${definition##*/}"
|
||||||
done
|
done
|
||||||
} | sort
|
} | sort
|
||||||
}
|
}
|
||||||
@@ -578,6 +911,7 @@ list_definitions() {
|
|||||||
unset VERBOSE
|
unset VERBOSE
|
||||||
unset KEEP_BUILD_PATH
|
unset KEEP_BUILD_PATH
|
||||||
PYTHON_BUILD_ROOT="$(abs_dirname "$0")/.."
|
PYTHON_BUILD_ROOT="$(abs_dirname "$0")/.."
|
||||||
|
unset DEBUG
|
||||||
|
|
||||||
parse_options "$@"
|
parse_options "$@"
|
||||||
|
|
||||||
@@ -587,6 +921,7 @@ for option in "${OPTIONS[@]}"; do
|
|||||||
usage without_exiting
|
usage without_exiting
|
||||||
{ echo
|
{ echo
|
||||||
echo " -k/--keep Do not remove source tree after installation"
|
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 " -v/--verbose Verbose mode: print compilation status to stdout"
|
||||||
echo " --definitions List all built-in definitions"
|
echo " --definitions List all built-in definitions"
|
||||||
echo
|
echo
|
||||||
@@ -603,6 +938,9 @@ for option in "${OPTIONS[@]}"; do
|
|||||||
"v" | "verbose" )
|
"v" | "verbose" )
|
||||||
VERBOSE=true
|
VERBOSE=true
|
||||||
;;
|
;;
|
||||||
|
"g" | "debug" )
|
||||||
|
DEBUG=true
|
||||||
|
;;
|
||||||
"version" )
|
"version" )
|
||||||
version
|
version
|
||||||
exit 0
|
exit 0
|
||||||
@@ -619,7 +957,7 @@ elif [ ! -e "$DEFINITION_PATH" ]; then
|
|||||||
DEFINITION_PATH="$BUILTIN_DEFINITION_PATH"
|
DEFINITION_PATH="$BUILTIN_DEFINITION_PATH"
|
||||||
else
|
else
|
||||||
echo "python-build: definition not found: ${DEFINITION_PATH}" >&2
|
echo "python-build: definition not found: ${DEFINITION_PATH}" >&2
|
||||||
exit 1
|
exit 2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -635,7 +973,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$MAKE" ]; then
|
if [ -z "$MAKE" ]; then
|
||||||
MAKE="make"
|
export MAKE="make"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "$PYTHON_BUILD_CACHE_PATH" ] && [ -d "$PYTHON_BUILD_CACHE_PATH" ]; then
|
if [ -n "$PYTHON_BUILD_CACHE_PATH" ] && [ -d "$PYTHON_BUILD_CACHE_PATH" ]; then
|
||||||
@@ -645,7 +983,7 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$PYTHON_BUILD_MIRROR_URL" ]; then
|
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
|
else
|
||||||
PYTHON_BUILD_MIRROR_URL="${PYTHON_BUILD_MIRROR_URL%/}"
|
PYTHON_BUILD_MIRROR_URL="${PYTHON_BUILD_MIRROR_URL%/}"
|
||||||
fi
|
fi
|
||||||
@@ -661,6 +999,10 @@ else
|
|||||||
unset PYTHON_BUILD_MIRROR_URL
|
unset PYTHON_BUILD_MIRROR_URL
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$DEBUG" ]; then
|
||||||
|
CONFIGURE_OPTS+=" --with-pydebug"
|
||||||
|
fi
|
||||||
|
|
||||||
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
SEED="$(date "+%Y%m%d%H%M%S").$$"
|
||||||
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
LOG_PATH="${TMP}/python-build.${SEED}.log"
|
||||||
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
PYTHON_BIN="${PREFIX_PATH}/bin/python"
|
||||||
@@ -669,13 +1011,14 @@ CWD="$(pwd)"
|
|||||||
if [ -z $PYTHON_BUILD_BUILD_PATH ]; then
|
if [ -z $PYTHON_BUILD_BUILD_PATH ]; then
|
||||||
BUILD_PATH="${TMP}/python-build.${SEED}"
|
BUILD_PATH="${TMP}/python-build.${SEED}"
|
||||||
else
|
else
|
||||||
BUILD_PATH=$PYTHON_BUILD_BUILD_PATH
|
BUILD_PATH="$PYTHON_BUILD_BUILD_PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec 4<> "$LOG_PATH" # open the log file at fd 4
|
exec 4<> "$LOG_PATH" # open the log file at fd 4
|
||||||
if [ -n "$VERBOSE" ]; then
|
if [ -n "$VERBOSE" ]; then
|
||||||
tail -f "$LOG_PATH" &
|
tail -f "$LOG_PATH" &
|
||||||
trap "kill 0" SIGINT SIGTERM EXIT
|
TAIL_PID=$!
|
||||||
|
trap "kill $TAIL_PID" SIGINT SIGTERM EXIT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export LDFLAGS="-L'${PREFIX_PATH}/lib' ${LDFLAGS}"
|
export LDFLAGS="-L'${PREFIX_PATH}/lib' ${LDFLAGS}"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ for file in bin/*; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
for file in share/python-build/*; do
|
for file in share/python-build/*; do
|
||||||
cp "${file}" "${SHARE_PATH}"
|
cp -Rp "${file}" "${SHARE_PATH}"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "Installed python-build at ${PREFIX}"
|
echo "Installed python-build at ${PREFIX}"
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5" "http://www.python.org/ftp/python/2.5/Python-2.5.tgz#bc1b74f90a472a6c0a85481aaeb43f95" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5.1" "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#cca695828df8adc3e69b637af07522e1" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5.2" "http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#3f7ca8aa86c6bd275426d63b46e07992" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5.3" "http://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#a971f8928d6beb31ae0de56f7034d6a2" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5.4" "http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#ad47b23778f64edadaaa8b5534986eed" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5.5" "http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#abc02139ca38f4258e8e372f7da05c88" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
case "$OSTYPE" in
|
require_gcc
|
||||||
linux*)
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case $(uname -m) in
|
install_package "Python-2.5.6" "http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#d1d9c83928561addf11d00b22a18ca50" standard verify_py25
|
||||||
x86_64)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
;;
|
|
||||||
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
|
|
||||||
|
|||||||
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() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-2.6.6" "http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0" standard verify_py26
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
before_install_package() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-2.6.7" "http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d" standard verify_py26
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
before_install_package() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-2.6.8" "http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6" standard verify_py26
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
before_install_package() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-2.7" "http://www.python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f" standard verify_py27
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
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() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-2.7.1" "http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb" standard verify_py27
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
@@ -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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-3.0.1" "http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe" standard verify_py30
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python30/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
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() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-3.1.3" "http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424" standard verify_py31
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
@@ -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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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() {
|
require_gcc
|
||||||
local package_name="$1"
|
install_package "readline-6.2" "ftp://ftp.cwru.edu/pub/bash/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
|
||||||
case "$package_name" in
|
install_package "Python-3.2" "http://www.python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af" standard verify_py32
|
||||||
Python*)
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python32/patch-setup.py.diff" > setup.patch
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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"
|
require_gcc
|
||||||
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
|
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 "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
|
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
|
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_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
|
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
|
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_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
|
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
|
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_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
|
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
|
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_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
|
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
|
case "$(uname -s)" in
|
||||||
darwin*)
|
"Darwin" )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-osx64.tar.bz2#1c293253e8e4df411c3dd59dff82a663"
|
install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-osx64.tar.bz2#1c293253e8e4df411c3dd59dff82a663" pypy verify_py27
|
||||||
;;
|
;;
|
||||||
linux*)
|
"Linux" )
|
||||||
case $(uname -m) in
|
case "$(uname -m)" in
|
||||||
i386|i486|i586|i686)
|
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux.tar.bz2#c4a1d11e0283a390d9e9b801a4633b9f"
|
install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux.tar.bz2#c4a1d11e0283a390d9e9b801a4633b9f" pypy verify_py27
|
||||||
;;
|
;;
|
||||||
x86_64)
|
"x86_64" )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2#3b81363ccbc042dfdda2fabbf419e788"
|
install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2#3b81363ccbc042dfdda2fabbf419e788" pypy verify_py27
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
cygwin*|mingw*)
|
"CYGWIN"* | "MINGW"* )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-win32.zip#1af8ee722721e9f5fd06b61af530ecb3"
|
# 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
|
esac
|
||||||
|
|
||||||
if [ -n "$PYPY_URL" ]; then
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
install_package "pypy-1.8" "$PYPY_URL" pypy
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
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
|
case "$(uname -s)" in
|
||||||
darwin*)
|
"Darwin" )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-osx64.tar.bz2#aad9c4b7b827583e37fe8ae0f7cfe0ff"
|
install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-osx64.tar.bz2#aad9c4b7b827583e37fe8ae0f7cfe0ff" pypy verify_py27
|
||||||
;;
|
;;
|
||||||
linux*)
|
"Linux" )
|
||||||
case $(uname -m) in
|
case "$(uname -m)" in
|
||||||
i386|i486|i586|i686)
|
"i386" | "i486" | "i586" | "i686" | "i786" )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux.tar.bz2#1a08c88642434fc2e0e4256d351f48db"
|
install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux.tar.bz2#1a08c88642434fc2e0e4256d351f48db" pypy verify_py27
|
||||||
;;
|
;;
|
||||||
x86_64)
|
"x86_64" )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2#201d2cce2557e40c784473b471ee1b6b"
|
install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2#201d2cce2557e40c784473b471ee1b6b" pypy verify_py27
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
cygwin*|mingw*)
|
"CYGWIN"* | "MINGW"* )
|
||||||
PYPY_URL="https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-win32.zip#e7655066baed3c7bbbca7df617817dd5"
|
# 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
|
esac
|
||||||
|
|
||||||
if [ -n "$PYPY_URL" ]; then
|
install_package "setuptools-0.7.2" "https://bitbucket.org/pypa/setuptools/downloads/setuptools-0.7.2.tar.gz#20003718b266929c4a49e5d7ba3f792c" python
|
||||||
install_package "pypy-1.9" "$PYPY_URL" pypy
|
install_package "pip-1.3.1" "http://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python
|
||||||
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
|
|
||||||
|
|||||||
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