1
0
mirror of https://github.com/pyenv/pyenv.git synced 2025-11-08 19:43:48 -05:00

Compare commits

...

169 Commits

Author SHA1 Message Date
Yamashita Yuu
5e20237f5b v0.4.0-20131116 2013-11-16 19:29:30 +09:00
Yamashita Yuu
dd44d0a713 Add CPython 3.3.3 RC1/RC2 2013-11-16 19:04:42 +09:00
Yamashita Yuu
a28c040eb9 Add PyPy 2.2 (closes #77) 2013-11-15 12:32:57 +09:00
Yamashita Yuu
6a787dd951 Update setuptools (1.1.7 -> 1.3.2) 2013-11-11 20:44:24 +09:00
Yamashita Yuu
5d9132623f Add CPython 2.7.6 2013-11-11 20:41:53 +09:00
Yamashita Yuu
f7193b09fd Merge branch 'ruby-build-v20131030' 2013-11-01 18:30:24 +09:00
Yamashita Yuu
498d226b2f Import changes from ruby-build v20131030 2013-11-01 18:30:00 +09:00
Yamashita Yuu
ccc51244e3 Add CPython 2.6.9 2013-11-01 17:13:29 +09:00
Yamashita Yuu
516f49e913 Update setuptoos (1.1.6 -> 1.1.7) 2013-11-01 17:00:16 +09:00
Yamashita Yuu
a2ab3bc32c v0.4.0-20131023 2013-10-23 15:19:33 +09:00
Yamashita Yuu
ab4a8396e1 Add 3.4.0a4 2013-10-23 15:18:14 +09:00
Yamashita Yuu
733cb397b2 improve messages on failed import 2013-10-15 14:04:38 +09:00
Yamashita Yuu
7f9a2325e5 Add 3.4.0a3 2013-10-04 12:52:05 +09:00
Yamashita Yuu
625b3b7ec1 Update setuptools (1.1.4 -> 1.1.6) 2013-10-04 12:49:41 +09:00
Yamashita Yuu
c95d446c53 Merge branch 'improved-fish-support' 2013-09-30 18:02:54 +09:00
Yamashita Yuu
6e749ef12f Import recent changes relating to fish from rbenv 2013-09-30 18:02:12 +09:00
Yamashita Yuu
850dd87332 Merge branch 'appropriate-tar-options' 2013-09-14 17:00:32 +09:00
Yamashita Yuu
fb3e9b020e Use appropriciate tar option per compression types (#58) 2013-09-14 16:50:52 +09:00
Yamashita, Yuu
02a348b657 Merge pull request #57 from rluders/patch-1
Ubuntu environment configuration
2013-09-13 03:10:29 -07:00
Ricardo Lüders
5c41dc3901 Ubuntu environment configuration 2013-09-12 21:07:40 -03:00
Yamashita Yuu
74a3c55623 Add CPython 3.4.0a2 2013-09-10 21:32:01 +09:00
Yamashita Yuu
bc8c8a6cd9 Update setuptools (1.1 -> 1.1.4) 2013-09-10 21:31:55 +09:00
Yamashita Yuu
99bc72a908 Wipe out CPython-specific scripts from build_package_standard() 2013-09-02 17:13:17 +09:00
Yamashita Yuu
aab8bb262d Update setuptools (1.0 -> 1.1) 2013-08-29 12:14:36 +09:00
Yamashita, Yuu
f14a4ef8e5 Merge pull request #54 from apbarrero/alternative_install
Installation instructions for any installation directory.
2013-08-28 00:18:45 -07:00
Antonio Perez Barrero
3bf50856ce Installation instructions for any installation directory.
Updated README.md contents so that installation instructions cover
not only the common case for installation directory, i.e. `~/.pyenv`
but any other at the user's choice.
2013-08-28 08:33:18 +02:00
Yamashita, Yuu
c3e55aa5ae Merge pull request #53 from stephendavis89/master
Fix spelling error in README
2013-08-27 20:05:12 -07:00
Stephen Davis
704548336a Fix spelling error 2013-08-27 15:27:57 -04:00
Yamashita Yuu
0ea5e12b4a Update changelog 2013-08-23 18:40:12 +09:00
Yamashita Yuu
28fd240de2 Update setuptools (0.9.7 -> 1.0) 2013-08-23 18:36:21 +09:00
Yamashita Yuu
586c0e6d62 Update pip (1.4 -> 1.4.1) 2013-08-23 18:31:22 +09:00
Yamashita, Yuu
c920eaa9be Merge pull request #49 from yyuu/fish-support
Fish support (#32)
2013-08-15 20:44:10 -07:00
Yamashita Yuu
d2f210d70d Implement sub-command completion for fish shell 2013-08-16 12:24:53 +09:00
Yamashita Yuu
683036298e fish doesn't have builtin command equivalent to bash's hash -r. 2013-08-15 22:56:57 +09:00
Yamashita Yuu
93b536863f Support fish shell 2013-08-15 22:56:53 +09:00
Yamashita Yuu
403f4eb7a7 Preserve original IFSs 2013-08-15 22:29:47 +09:00
Yamashita Yuu
4c71f3c5cd Apply --with-pydebug configure option only for Python 2013-08-08 11:58:01 +09:00
Yamashita Yuu
106e4cae90 Homebrew homepage location changed 2013-08-06 22:57:45 +09:00
Yamashita Yuu
10221d51f1 Add 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5 2013-08-02 00:32:09 +09:00
Yamashita Yuu
aff87c3cb3 Rename; pypy-py3k-dev -> pypy3-dev 2013-08-02 00:13:50 +09:00
Yamashita Yuu
b0f640db61 Add pypy3-2.1-beta1 2013-08-02 00:13:50 +09:00
Yamashita Yuu
af0fed2e34 Add pypy-2.1 2013-08-01 23:58:33 +09:00
Yamashita Yuu
e996f2f51a Merge branch 'py24-multiarch-patch' 2013-08-01 23:23:30 +09:00
Yamashita, Yuu
0fe18d0dc1 Merge pull request #45 from Domon/fix-formatting-in-readme
Fix formatting in the Homebrew section of README
2013-08-01 03:16:48 -07:00
Chun-wei Kuo
cc6c45d7fb Fix formatting in the Homebrew section of README 2013-08-01 18:01:38 +08:00
Yamashita Yuu
2646c6c159 Add _multiarch_ patch to fix build of CPython 2.4.x 2013-08-01 17:26:37 +09:00
Yamashita Yuu
ce66352f6d v0.4.0-20130726 2013-07-26 16:59:51 +09:00
Yamashita Yuu
9e133adf99 Merge branch 'ruby-build-20130628' 2013-07-26 00:05:19 +09:00
Yamashita Yuu
b1851f2aff Update README 2013-07-25 17:19:59 +09:00
Yamashita Yuu
b943e0abff Import changes from ruby-build v20130628 2013-07-25 17:19:55 +09:00
Yamashita Yuu
d6d556911b Merge branch 'fix-build-on-suse' (fixes #36) 2013-07-24 22:57:59 +09:00
Yamashita Yuu
b8ecd2d6dd Specify --libdir on configure to fix build on openSUSE (#36) 2013-07-24 18:43:20 +09:00
Yamashita Yuu
1e5ef005fb Update setuptools (0.9.5 -> 0.9.7) 2013-07-24 17:17:48 +09:00
Yamashita Yuu
d11db0f0f2 Update pip for Python 2.6+ (1.3 -> 1.4) 2013-07-24 17:09:40 +09:00
Yamashita, Yuu
8e43e72082 Merge pull request #37 from flavio/build_python_2_4
Allow installation of python 2.4.2
2013-07-23 23:37:31 -07:00
Flavio Castelli
ae86a253e2 Allow installation of python 2.4 series
Make possible to install python 2.4.2 and 2.4.6.
2013-07-22 14:53:09 +02:00
Yamashita Yuu
0c38147fcb Fix build of native modules of Carbon/ncurses on OS X 10.7 2013-07-20 20:53:38 +09:00
Yamashita Yuu
e1ea64b0b9 Merge branch 'issue33' 2013-07-19 22:02:16 +09:00
Yamashita Yuu
fa35e792c1 Backport libffi-osx from 2.7.5 to build ctypes on OS X (#33) 2013-07-19 21:47:51 +09:00
Yamashita Yuu
f5807424c2 Add patches for 2.5 to fix biuld on OS X 10.7/10.8 (#33) 2013-07-19 18:08:02 +09:00
Yamashita Yuu
4c006959fa fix broken string match in has_broken_mac_llvm_gcc() 2013-07-17 17:02:23 +09:00
Yamashita Yuu
f9a19e3f24 s/gcc_llvm/llvm_gcc/g 2013-07-17 16:38:57 +09:00
Yamashita Yuu
d5c24f5122 Update setuptools (0.8 -> 0.9.5) 2013-07-17 15:51:19 +09:00
Yamashita Yuu
392e404cc6 Use https instead of http when downloading from pypi 2013-07-08 16:27:01 +09:00
Yamashita Yuu
b04e067c83 update setuptools (0.7.7 -> 0.8) 2013-07-08 16:25:24 +09:00
Yamashita Yuu
ed2937f4d1 update setuptools (0.7.4 -> 0.7.7) 2013-07-04 17:23:38 +09:00
Yamashita Yuu
8848006540 remove meaningless break (fixes #26) 2013-07-03 11:15:58 +09:00
Yamashita Yuu
7a4fe458b8 Merge branch 'llvm-gcc-4.2-on-osx' 2013-06-29 12:32:35 +09:00
Yamashita Yuu
f76faa88b8 add has_broken_mac_gcc_llvm and use clang if true 2013-06-29 12:27:33 +09:00
Yamashita Yuu
9ce760c798 add require_cc() to test existence of CC other than GCC 2013-06-28 12:18:45 +09:00
Yamashita Yuu
152ebe6e61 Download GNU Readline from mirror site of GNU 2013-06-27 12:28:34 +09:00
Yamashita Yuu
1a6eb80bcd should not declare IFS in toplevel 2013-06-21 19:37:58 +09:00
Yamashita Yuu
745bceac22 update setuptools (0.7.2 -> 0.7.4) 2013-06-20 12:31:18 +09:00
Yamashita Yuu
583f3b0e21 fix build of 3.4-dev. append existing 3.4 at the last.
this is because `hg` (which is a dependency of *-dev build) might be
installed in existing pyenv versions.
2013-06-19 18:48:58 +09:00
Yamashita Yuu
cc9c72747a v0.4.0-20130613 2013-06-13 20:52:10 +09:00
Yamashita Yuu
b473f7a271 add CHANGELOG.md 2013-06-13 20:51:17 +09:00
Yamashita Yuu
b726ace943 update README about Homebrew 2013-06-13 20:04:37 +09:00
Yamashita Yuu
499edda1d7 Merge branch 'preparing-removal-of-pyenv-version-ext' 2013-06-13 12:40:13 +09:00
Yamashita Yuu
3bfd91de51 rename to version-ext-compat because pyenv-version-ext must precede
than compatibility plugin.
2013-06-13 12:37:35 +09:00
Yamashita Yuu
c7e139186b update README 2013-06-13 12:20:31 +09:00
Yamashita Yuu
7c84490649 ignore pyenv-version-ext-compat plugin 2013-06-13 12:14:17 +09:00
Yamashita Yuu
b75ef17db7 add deprecation warning for push/pop commands 2013-06-13 12:13:41 +09:00
Yamashita Yuu
daa12e97c6 rename plugin 2013-06-13 12:04:09 +09:00
Yamashita Yuu
1c5eb82e93 Merge branch 'has_broken_mac_readline' (fixes #23) 2013-06-13 11:32:12 +09:00
Yamashita Yuu
ff387010b3 use environment variable "${CPP}" if defined 2013-06-12 20:43:19 +09:00
Yamashita Yuu
27dd805acb enable require_gcc to confirm if there is $CC 2013-06-12 16:11:07 +09:00
Yamashita Yuu
5f1761645f fix has_broken_mac_openssl for building Python.
`--with-*-dir` is only effective for Ruby's mkmf.rb.
2013-06-12 16:09:41 +09:00
Yamashita Yuu
f8c9282e8c Install GNU Readline on Darwin if the readline is broken (refs #23)
The `has_broken_mac_readline` checks the existence of
`readline/rhconf.h`. This is the same mechanism as setup.py of CPython.
2013-06-12 16:04:20 +09:00
Yamashita Yuu
37f46df390 Merge branch 'setuptools-0.7.2' 2013-06-10 12:50:25 +09:00
Yamashita Yuu
4f8138c70a update setuptools for jython versions (distribute 0.6.45 -> setuptools 0.7.2)
https://bitbucket.org/pypa/setuptools/issue/14/installation-failed-on-jython
2013-06-10 12:48:05 +09:00
Yamashita Yuu
db3b4773bc update setuptools (0.7.1 -> 0.7.2) 2013-06-10 12:38:38 +09:00
Yamashita Yuu
fe04103e24 update comment about new setuptools and Jython 2013-06-05 14:58:51 +09:00
Yamashita Yuu
7777bb6d58 Merge branch 'new-setuptools' 2013-06-04 20:39:04 +09:00
Yamashita Yuu
e9bcd9e0bd replace distribute by new setuptools 2013-06-04 20:31:08 +09:00
Yamashita Yuu
2cc2c22094 add SSLv2 patch for 2.7 and 2.7.1 2013-06-04 20:18:16 +09:00
Yamashita Yuu
319000b448 pyenv-prefix returns wrong prefix if system is given in the middle of arguments. 2013-06-04 17:35:23 +09:00
Yamashita Yuu
b4ba76a15a Merge branch 'version-ext-plugin' 2013-06-01 15:27:04 +09:00
Yamashita Yuu
3ff0785fe7 prepare README and install.sh for pyenv-version-ext 2013-06-01 15:26:41 +09:00
Yamashita Yuu
1b7d3b0502 move pyenv-sh-{push,pop} into plugins since they aren't from rbenv 2013-06-01 15:14:18 +09:00
Yamashita Yuu
c43711a216 update distribute (0.6.43 -> 0.6.35) 2013-05-31 18:48:42 +09:00
Yamashita Yuu
3c86d811c8 Merge branch 'add-dev-versions' 2013-05-31 17:38:37 +09:00
Yamashita Yuu
d94c1d2143 add jython-*-dev 2013-05-31 17:38:18 +09:00
Yamashita Yuu
3fd475e1d5 add stackless-*-dev 2013-05-31 17:16:35 +09:00
Yamashita Yuu
309a6cd65e *EXPERIMENTAL* add pypy-py3k-dev 2013-05-31 14:33:22 +09:00
Yamashita Yuu
924f6dc76d add ${PYPY_OPTS} to specify pypy build options 2013-05-31 14:28:32 +09:00
Yamashita Yuu
56a9a7cebf improve error message of pypy 2013-05-31 14:28:08 +09:00
Yamashita Yuu
b8cbb18f7b add pypy-1.[789]-dev 2013-05-31 13:45:37 +09:00
Yamashita Yuu
27caf0ef3d add pypy-1.[567] 2013-05-31 13:39:58 +09:00
Yamashita Yuu
b203ccbe74 verify pypy binary after installation 2013-05-31 13:00:48 +09:00
Yamashita Yuu
cb962d5a74 Merge branch 'pypy_builder' 2013-05-29 23:32:13 +09:00
Yamashita Yuu
539800cc3b add pypy-*-src to build and install pypy from source 2013-05-29 23:30:22 +09:00
Yamashita Yuu
b77ae3e0b5 build and install pypy from source 2013-05-29 23:26:50 +09:00
Yamashita Yuu
dfc3f9e13c Set $PYENV_VERSION for existing installation of 3.4
CPython 3.4.x requires "python3.4" to be executable during build
if it is in "$PATH".
2013-05-29 19:36:49 +09:00
Yamashita Yuu
f120551ef3 add pypy-2.0.1 and pypy-2.0.2 2013-05-29 15:05:43 +09:00
Yamashita Yuu
b03a4cde78 add build_package_verify_py3{0,1,2,3,4} 2013-05-27 19:37:24 +09:00
Yamashita Yuu
71b2081a75 update distribute version (0.6.40 -> 0.6.43) 2013-05-27 16:58:19 +09:00
Yamashita Yuu
5fbc3ae3d5 add ssl patch for 3.1.3 and 3.2 (#22) 2013-05-23 12:07:19 +09:00
Yamashita Yuu
1ce37e53c7 Merge branch 'ruby-build-v20130518' 2013-05-21 16:40:21 +09:00
Yamashita Yuu
9ae12a7c22 add CPython development versions (2.[67]-dev, 3.[1234]-dev) 2013-05-21 16:38:11 +09:00
Yamashita Yuu
b3deef5e80 update base version of ruby-build (v20130518) 2013-05-21 11:43:01 +09:00
Yamashita Yuu
28317ecb34 update readme 2013-05-19 02:34:57 +09:00
Yamashita Yuu
78efa7613d setup verification for 2.7.5, 3.2.5 and 3.3.2 2013-05-18 20:52:37 +09:00
Yamashita Yuu
0bf26d8f1d setup download mirror site (#18, #20) 2013-05-17 23:14:57 +09:00
Yamashita Yuu
ac70eb701c fix error messages 2013-05-17 19:36:23 +09:00
Yamashita Yuu
c834f241a8 check native modules (e.g. ssl, bz2) if they were built 2013-05-17 16:49:27 +09:00
Yamashita, Yuu
aa39b392a9 Merge pull request #17 from keitaoouchi/support_2.7.5_3.2.5_3.3.2
Support new versions(2.7.5, 3.2.5, 3.3.2).
2013-05-16 07:36:07 -07:00
keitaoouchi
907ddb614d Support new versions(2.7.4, 3.2.5, 3.3.2). 2013-05-16 23:24:21 +09:00
Yamashita Yuu
dd0e3feae3 add install_zip 2013-05-16 22:39:15 +09:00
Yamashita Yuu
c24207428c remove useless definition of PYENV_VERSION_PATH 2013-05-16 18:21:37 +09:00
Yamashita Yuu
8b23026d6c add PACKAGE_PATCH_STRIP to support optional strip number of patch 2013-05-16 18:19:10 +09:00
Yamashita Yuu
cc9b7aa7dd update distribute version (0.6.38 -> 0.6.40) 2013-05-15 19:47:44 +09:00
Yamashita Yuu
318a41d723 add i786 2013-05-10 21:26:55 +09:00
Yamashita Yuu
5a52177d15 add pypy-2.0 and remove beta versions 2013-05-10 21:15:40 +09:00
Yamashita Yuu
2e8c43215d preserve original file suffix in place of hardcoded ".tar" 2013-05-10 20:26:42 +09:00
Yamashita Yuu
45966deb49 fix pypy installation on x86_64 with glibc which is not strictly equal to 2.13 or 2.15. 2013-05-10 20:23:25 +09:00
Yamashita Yuu
7aa644da5c ignore cache directory 2013-05-10 19:08:14 +09:00
Yamashita Yuu
56379532a6 add comments for Jython about the version of distribute and pip (#15) 2013-05-10 18:31:48 +09:00
Yamashita Yuu
9bf0755c81 update default distribute version (0.6.36 -> 0.6.38) 2013-05-09 14:58:47 +09:00
Yamashita Yuu
f01d1d1064 move patches into ./share to fix the install.sh 2013-05-09 00:11:52 +09:00
Yamashita Yuu
e9b0ecf021 remove needless declaration of LDFLAGS.
removing this not breaks build on latest Debian sid.
2013-05-08 23:56:33 +09:00
Yamashita Yuu
cbc6f38774 fix build problem of ssl modulle of CPython 3.0.1 2013-05-08 20:09:54 +09:00
Yamashita Yuu
e220b76c3e fix build problem of ssl module with recent OpenSSL
http://bugs.python.org/issue12012
2013-05-08 19:52:09 +09:00
Yamashita Yuu
8d1bf96267 add workaround for incompatible behaviour of svnversion (#14) 2013-05-08 19:23:03 +09:00
Yamashita Yuu
e49922064d Merge branch 'automated-patching' 2013-05-08 18:38:53 +09:00
Yamashita Yuu
95882fce68 remove useless patches 2013-05-08 18:38:34 +09:00
Yamashita Yuu
cc20ab3392 find appropriate patch for package automatically 2013-05-08 18:35:30 +09:00
Yamashita Yuu
fe50ed29ea bundle patches into python-build repository 2013-05-08 17:49:09 +09:00
Yamashita Yuu
e9db2caace fix completion problem on zsh 2013-05-01 13:14:22 +09:00
Yamashita Yuu
2d55aea467 add pypy-2.0-beta2 2013-04-30 01:53:30 +09:00
Yamashita Yuu
521c2c3e06 add jython versions; jython-2.5.4-rc1 and jython-2.7-beta1 2013-04-30 01:46:28 +09:00
Yamashita Yuu
0bc8d8252e fix typo to verify jar's checksum 2013-04-30 01:20:12 +09:00
Yamashita Yuu
80f4022891 Merge branch 'issue15' 2013-04-29 13:08:23 +09:00
Yamashita Yuu
998af2a3ab revert pip version (1.3.1 -> 1.2.1) to avoid AttributeError on Jython. (#15)
AttributeError: 'module' object has no attribute 'O_NOFOLLOW'
2013-04-27 21:05:34 +09:00
Yamashita Yuu
3b820e8c0c revert distribute version (0.6.36 -> 0.6.32) due to the installation
problem with Jython 2.5.[01] (#15)
2013-04-27 20:54:45 +09:00
Yamashita Yuu
8bc19e28e0 update distribute version (0.6.34 -> 0.6.36) 2013-04-25 21:42:59 +09:00
Yamashita Yuu
0d0516ad05 update default pip version (1.2.1 -> 1.3.1) 2013-04-25 21:40:13 +09:00
Yamashita Yuu
6997026064 import recent changes from ruby-build 20130408 2013-04-19 19:26:11 +09:00
Yamashita Yuu
dd1b6502c6 add README for python-build.
was copied from [ruby-build](https://github.com/sstephenson/ruby-build).
2013-04-19 18:48:45 +09:00
Yamashita, Yuu
d1013e82de Merge pull request #12 from f440/support_2.7.4_3.2.4_3.3.1
Support 2.7.4, 3.2.4, 3.3.1
2013-04-06 21:20:26 -07:00
f440
bb2d058167 Support 2.7.4, 3.2.4, 3.3.1 2013-04-07 12:40:12 +09:00
Yamashita, Yuu
6e58c43d8a Merge pull request #11 from draftcode/build-pydebug
Add an option to build a debug version of Python
2013-03-28 00:53:08 -07:00
draftcode
dce4eb636a Add a help string to describe the debug option 2013-03-28 16:41:07 +09:00
draftcode
c170255580 Preserve CONFIGURE_OPTS 2013-03-28 16:35:26 +09:00
draftcode
8bf0938e60 Add an option to build a debug version of Python 2013-03-28 12:04:58 +09:00
Yamashita, Yuu
aa831836e1 Merge pull request #10 from oza/patch-1
Update README.md
2013-03-07 22:29:10 -08:00
OZAWA Tsuyoshi
0eb1520707 Update README.md 2013-03-08 15:26:15 +09:00
Yamashita Yuu
606346761f s/python-virtualenv/pyenv-virtualenv/g in README.md 2013-03-06 12:48:13 +09:00
Yamashita Yuu
48e1488bc9 remove duplicated LICENSE from python-build. 2013-02-23 19:07:45 +09:00
Yamashita Yuu
0259b6adfb update copyright year 2013-02-23 19:06:58 +09:00
188 changed files with 56113 additions and 557 deletions

2
.gitignore vendored
View File

@@ -1,3 +1,5 @@
/cache
/shims
/version
/versions
/sources

69
CHANGELOG.md Normal file
View File

@@ -0,0 +1,69 @@
## Version History
#### 0.4.0-20131116
* python-build: Add new CPython releases; 2.6.9, 2.7.6 (#76)
* python-build: Add new CPython release candidates; 3.3.3-rc1, 3.3.3-rc2
* python-build: Add new PyPy releases; pypy-2.2, pypy-2.2-src (#77)
* python-build: Update default setuptools version (1.1.6 -> 1.3.2)
* python-build: Imported recent changes from ruby-build v20131030
#### 0.4.0-20131023
* pyenv: Improved [fish shell](http://fishshell.com/) support
* python-build: Add new PyPy releases; pypy-2.1, pypy-2.1-src, pypy3-2.1-beta1, pypy3-2.1-beta1-src
* python-build: Add ancient versions; 2.4, 2.4.1, 2.4.3, 2.4.4 and 2.4.5
* python-build: Add alpha releases; 3.4.0a2, 3.4.0a3, 3.4.0a4
* python-build: Update default pip version (1.4 -> 1.4.1)
* python-build: Update default setuptools version (0.9.7 -> 1.1.6)
#### 0.4.0-20130726
* pyenv: Fix minor issue of variable scope in `pyenv versions`
* python-build: Update base version to ruby-build v20130628
* python-build: Use brew managed OpenSSL and GNU Readline if they are available
* python-build: Fix build of CPython 3.3+ on OS X (#29)
* python-build: Fix build of native modules of CPython 2.5 on OS X (#33)
* python-build: Fix build of CPython 2.6+ on openSUSE (#36)
* python-build: Add ancient versions; 2.4.2 and 2.4.6. The build might be broken. (#37)
* python-build: Update default pip version (1.3.1 -> 1.4)
* python-build: Update default setuptools version (0.7.2 -> 0.9.7)
#### 0.4.0-20130613
* pyenv: Changed versioning schema. There are two parts; the former is the base rbenv version, and the latter is the date of release.
* python-build: Add `--debug` option to build CPython with debug symbols. (#11)
* python-build: Add new CPython versions: 2.7.4, 2.7.5, 3.2.4, 3.2.5, 3.3.1, 3.3.2 (#12, #17)
* python-build: Add `svnversion` patch for old CPython versions (#14)
* python-build: Enable mirror by default for faster download (#20)
* python-build: Add `OPENSSL_NO_SSL2` patch for old CPython versions (#22)
* python-build: Install GNU Readline on Darwin if the system one is broken (#23)
* python-build: Bundle patches in `${PYTHON_BUILD_ROOT}/share/python-build/patches` and improve patching mechanism (`apply_patches`).
* python-build: Verify native extensions after building. (`build_package_verify_py*`)
* python-build: Add `install_hg` to install package from Mercurial repository
* python-build: Support building Jython and PyPy.
* python-build: Add new CPython development versions: 2.6-dev, 2.7-dev, 3.1-dev, 3.2-dev, 3.3-dev, 3.4-dev
* python-build: Add new Jython development versions: jython-2.5.4-rc1, jython-2.5-dev, jython-2.7-beta1, jython-dev
* python-build: Add new PyPy versions: pypy-1.5{,-src}, pypy-1.6, pypy-1.7, pypy-2.0{,-src}, pypy-2.0.1{,-src}, pypy-2.0.2{,-src}
* python-build: Add new PyPy development versions: pypy-1.7-dev, pypy-1.8-dev, pypy-1.9-dev, pypy-2.0-dev, pypy-dev, pypy-py3k-dev
* python-build: Add new Stackless development versions: stackless-2.7-dev, stackless-3.2-dev, stackless-3.3-dev, stackless-dev
* python-build: Update default pip version (1.2.1 -> 1.3.1)
* python-build: Update default setuptools version (0.6.34 (distribute) -> 0.7.2 ([new setuptools](https://bitbucket.org/pypa/setuptools)))
#### 0.2.0 (February 18, 2013)
* Import changes from rbenv 0.4.0.
#### 0.1.2 (October 23, 2012)
* Add push/pop for version stack management.
* Support multiple versions via environment variable.
* Now GCC is not a requirement to build CPython and Stackless.
#### 0.1.1 (September 3, 2012)
* Support multiple versions of Python at a time.
#### 0.1.0 (August 31, 2012)
* Initial public release.

View File

@@ -1,5 +1,5 @@
Copyright (c) 2011 Sam Stephenson
Copyright (c) 2012 Yamashita, Yuu
Copyright (c) 2013 Yamashita, Yuu
Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

147
README.md
View File

@@ -20,12 +20,12 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
### In contrast with pythonbrew and pythonz, pyenv _does not..._
* **Depending on Python itself.** pyenv was made from pure shell scripts.
* **Depend on Python itself.** pyenv was made from pure shell scripts.
There is no bootstrap problem of Python.
* **Need to be loaded into your shell.** Instead, pyenv's shim
approach works by adding a directory to your `$PATH`.
* **Manage virtualenv.** Of course, you can create [virtualenv](http://pypi.python.org/pypi/virtualenv)
yourself, or [python-virtualenv](https://github.com/yyuu/python-virtualenv)
yourself, or [pyenv-virtualenv](https://github.com/yyuu/pyenv-virtualenv)
to automate the process.
## Table of Contents
@@ -38,6 +38,7 @@ This project was forked from [rbenv](https://github.com/sstephenson/rbenv) and
* [Installation](#installation)
* [Basic GitHub Checkout](#basic-github-checkout)
* [Upgrading](#upgrading)
* [Homebrew on Mac OS X](#homebrew-on-mac-os-x)
* [Neckbeard Configuration](#neckbeard-configuration)
* [Uninstalling Python Versions](#uninstalling-python-versions)
* [Command Reference](#command-reference)
@@ -128,8 +129,8 @@ Each Python version is installed into its own directory under
`~/.pyenv/versions`. For example, you might have these versions
installed:
* `~/.pyenv/versions/2.7.3/`
* `~/.pyenv/versions/3.3.0/`
* `~/.pyenv/versions/2.7.5/`
* `~/.pyenv/versions/3.3.2/`
* `~/.pyenv/versions/pypy-1.9/`
Version names to pyenv are simply the names of the directories in
@@ -137,38 +138,50 @@ Version names to pyenv are simply the names of the directories in
## Installation
If you're on Mac OS X, consider
[installing with Homebrew](#homebrew-on-mac-os-x).
### Basic GitHub Checkout
This will get you going with the latest version of pyenv and make it
easy to fork and contribute any changes back upstream.
1. Check out pyenv into `~/.pyenv`.
1. Check out pyenv where you want it installed. A good place to choose is
`$HOME/.pyenv` but you may install it somewhere else.
$ cd
$ git clone git://github.com/yyuu/pyenv.git .pyenv
2. Add `~/.pyenv/bin` to your `$PATH` for access to the `pyenv`
command-line utility.
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
2. Define environment variable `PYENV_ROOT` to point to the path where
pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access
to the `pyenv` command-line utility.
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
3. Add pyenv init to your shell to enable shims and autocompletion.
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
**Zsh note**: Modify your `~/.zshenv` file instead of `~/.bash_profile`.
**Ubuntu note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`.
4. Restart your shell so the path changes take effect. You can now
begin using pyenv.
$ exec $SHELL
5. Install Python versions into `~/.pyenv/versions`. For example, to
install Python 2.7.3, download and unpack the source, then run:
5. Install Python versions into `$PYENV_ROOT/versions`. For example, to
install Python 2.7.5, download and unpack the source, then run:
$ pyenv install 2.7.3
$ pyenv install 2.7.5
**NOTE** If you need to pass configure option to build, please use
```CONFIGURE_OPTS``` environment variable.
6. Rebuild the shim binaries. You should do this any time you install
a new Python binary (for example, when installing a new Python version,
@@ -195,6 +208,23 @@ tag:
v0.1.0
$ git checkout v0.1.0
### Homebrew on Mac OS X
You can also install pyenv using the
[Homebrew](http://brew.sh) package manager on Mac OS
X.
~~~
$ brew update
$ brew install pyenv
~~~
To later update these installs, use `upgrade` instead of `install`.
Afterwards you'll still need to add `eval "$(pyenv init -)"` to your
profile as stated in the caveats. You'll only ever have to do this
once.
### Neckbeard Configuration
Skip this section unless you must know what every line in your shell
@@ -253,7 +283,7 @@ overrides the global version, and can be overridden itself by setting
the `PYENV_VERSION` environment variable or with the `pyenv shell`
command.
$ pyenv local 2.7.3
$ pyenv local 2.7.5
When run without a version number, `pyenv local` reports the currently
configured local version. You can also unset the local version:
@@ -270,30 +300,16 @@ read a local version specified in an `.pyenv-version` file, but a
You can specify multiple versions as local Python. Commands
within these Python versions are searched by specified order.
$ pyenv local 2.7.3 3.2.3
$ pyenv local 2.7.5 3.2.5
$ pyenv local
2.7.3
3.2.3
2.7.5
3.2.5
$ pyenv which python2.7
/home/yyuu/.pyenv/versions/2.7.3/bin/python2.7
/home/yyuu/.pyenv/versions/2.7.5/bin/python2.7
$ pyenv which python3.2
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
/home/yyuu/.pyenv/versions/3.2.5/bin/python3.2
$ pyenv which python
/home/yyuu/.pyenv/versions/2.7.3/bin/python
You can manage your version stack by `pyenv push` and `pyenv pop`.
$ pyenv local
2.7.3
3.2.3
$ pyenv push 3.3.0
$ pyenv local
2.7.3
3.2.3
3.3.0
$ pyenv pop
2.7.3
3.2.3
/home/yyuu/.pyenv/versions/2.7.5/bin/python
### pyenv global
@@ -302,7 +318,7 @@ the version name to the `~/.pyenv/version` file. This version can be
overridden by an application-specific `.python-version` file, or by
setting the `PYENV_VERSION` environment variable.
$ pyenv global 2.7.3
$ pyenv global 2.7.5
The special version name `system` tells pyenv to use the system Python
(detected by searching your `$PATH`).
@@ -315,30 +331,16 @@ currently configured global version.
You can specify multiple versions as global Python. Commands
within these Python versions are searched by specified order.
$ pyenv global 2.7.3 3.2.3
$ pyenv global 2.7.5 3.2.5
$ pyenv global
2.7.3
3.2.3
2.7.5
3.2.5
$ pyenv which python2.7
/home/yyuu/.pyenv/versions/2.7.3/bin/python2.7
/home/yyuu/.pyenv/versions/2.7.5/bin/python2.7
$ pyenv which python3.2
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
/home/yyuu/.pyenv/versions/3.2.5/bin/python3.2
$ pyenv which python
/home/yyuu/.pyenv/versions/2.7.3/bin/python
You can manage your version stack by `pyenv push` and `pyenv pop`.
$ pyenv global
2.7.3
3.2.3
$ pyenv push 3.3.0
$ pyenv global
2.7.3
3.2.3
3.3.0
$ pyenv pop
2.7.3
3.2.3
/home/yyuu/.pyenv/versions/2.7.5/bin/python
### pyenv shell
@@ -365,12 +367,12 @@ prefer not to use shell integration, you may simply set the
You can specify multiple versions via `PYENV_VERSION`
environment variable in your shell.
$ pyenv shell pypy-1.9 2.7.3
$ pyenv shell pypy-1.9 2.7.5
$ echo $PYENV_VERSION
pypy-1.9:2.7.3
pypy-1.9:2.7.5
$ pyenv version
pypy-1.9 (set by PYENV_VERSION environment variable)
2.7.3 (set by PYENV_VERSION environment variable)
2.7.5 (set by PYENV_VERSION environment variable)
### pyenv versions
@@ -380,8 +382,8 @@ the currently active version.
$ pyenv versions
2.5.6
2.6.8
* 2.7.3 (set by /home/yyuu/.pyenv/version)
3.2.3
* 2.7.5 (set by /home/yyuu/.pyenv/version)
3.2.5
jython-2.5.3
pypy-1.9
@@ -391,7 +393,7 @@ Displays the currently active Python version, along with information on
how it was set.
$ pyenv version
2.7.3 (set by /home/yyuu/.pyenv/version)
2.7.5 (set by /home/yyuu/.pyenv/version)
### pyenv rehash
@@ -407,7 +409,7 @@ Displays the full path to the executable that pyenv will invoke when
you run the given command.
$ pyenv which python3.2
/home/yyuu/.pyenv/versions/3.2.3/bin/python3.2
/home/yyuu/.pyenv/versions/3.2.5/bin/python3.2
### pyenv whence
@@ -415,8 +417,8 @@ Lists all Python versions with the given command installed.
$ pyenv whence 2to3
2.6.8
2.7.3
3.2.3
2.7.5
3.2.5
## Development
@@ -429,30 +431,15 @@ tracker](https://github.com/yyuu/pyenv/issues).
### Version History
**0.2.0** (February 18, 2013)
See CHANGELOG.md.
* Import changes from rbenv 0.4.0.
**0.1.2** (October 23, 2012)
* Add push/pop for version stack management.
* Support multiple versions via environment variable.
* Now GCC is not a requirement to build CPython and Stackless.
**0.1.1** (September 3, 2012)
* Support multiple versions of Python at a time.
**0.1.0** (August 31, 2012)
* Initial public release.
### License
(The MIT license)
* Copyright (c) 2011 Sam Stephenson
* Copyright (c) 2012 Yamashita, Yuu
* Copyright (c) 2013 Yamashita, Yuu
* Copyright (c) 2013 Sam Stephenson
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the

22
completions/pyenv.fish Normal file
View File

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

View File

@@ -11,7 +11,7 @@ _pyenv() {
if [ "${#words}" -eq 2 ]; then
completions="$(pyenv commands)"
else
completions="$(pyenv completions "${words[2,-1]}")"
completions="$(pyenv completions "${words[2,-2]}")"
fi
reply=("${(ps:\n:)completions}")

View File

@@ -12,7 +12,7 @@
set -e
[ -n "$PYENV_DEBUG" ] && set -x
version="0.2.0"
version="0.4.0-20131116"
cd "$PYENV_ROOT"
git_revision="$(git describe --tags HEAD 2>/dev/null || true)"

View File

@@ -20,9 +20,11 @@ elif [ "$1" = "--no-sh" ]; then
shift
fi
IFS=: paths=($PATH)
shopt -s nullglob
{ for path in ${PATH//:/$'\n'}; do
{ for path in "${paths[@]}"; do
for command in "${path}/pyenv-"*; do
command="${command##*pyenv-}"
if [ -n "$sh" ]; then

View File

@@ -11,7 +11,7 @@ if [ -z "$COMMAND" ]; then
fi
COMMAND_PATH="$(command -v "pyenv-$COMMAND" || command -v "pyenv-sh-$COMMAND")"
if grep -i "^# provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
if grep -i "^\([#%]\|--\|//\) provide pyenv completions" "$COMMAND_PATH" >/dev/null; then
shift
exec "$COMMAND_PATH" --complete "$@"
fi

View File

@@ -27,12 +27,14 @@ PYENV_VERSION_FILE="${PYENV_ROOT}/version"
if [ -n "$versions" ]; then
pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}"
else
OLDIFS="$IFS"
IFS=: versions=($(
pyenv-version-file-read "$PYENV_VERSION_FILE" ||
pyenv-version-file-read "${PYENV_ROOT}/global" ||
pyenv-version-file-read "${PYENV_ROOT}/default" ||
echo system
))
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done

View File

@@ -64,8 +64,8 @@ collect_documentation() {
}
function trim(str) {
gsub(/^\n*/, "", str)
gsub(/\n*$/, "", str)
sub(/^\n*/, "", str)
sub(/\n*$/, "", str)
return str
}

View File

@@ -25,8 +25,14 @@ if [ -z "$shell" ]; then
shell="$(basename "$SHELL")"
fi
READLINK=$(type -p greadlink readlink | head -1)
if [ -z "$READLINK" ]; then
echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2
exit 1
fi
resolve_link() {
$(type -p greadlink readlink | head -1) $1
$READLINK "$1"
}
abs_dirname() {
@@ -56,6 +62,9 @@ if [ -z "$print" ]; then
ksh )
profile='~/.profile'
;;
fish )
profile='~/.config/fish/config.fish'
;;
* )
profile='your profile'
;;
@@ -64,7 +73,14 @@ if [ -z "$print" ]; then
{ echo "# Load pyenv automatically by adding"
echo "# the following to ${profile}:"
echo
case "$shell" in
fish )
echo '. (pyenv init -|psub)'
;;
* )
echo 'eval "$(pyenv init -)"'
;;
esac
echo
} >&2
@@ -73,23 +89,58 @@ fi
mkdir -p "${PYENV_ROOT}/"{shims,versions}
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
if [[ ":${PATH}:" != *:"${PYENV_ROOT}/shims":* ]]; then
case "$shell" in
bash | zsh )
echo "source \"$root/completions/pyenv.${shell}\""
fish )
echo "setenv PATH '${PYENV_ROOT}/shims' \$PATH"
;;
* )
echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"'
;;
esac
fi
completion="${root}/completions/pyenv.${shell}"
[ -r "$completion" ] && echo ". '$completion'"
if [ -z "$no_rehash" ]; then
echo 'pyenv rehash 2>/dev/null'
fi
commands=(`pyenv-commands --sh`)
IFS="|"
case "$shell" in
fish )
cat <<EOS
function pyenv
set command \$argv[1]
set -e argv[1]
switch "\$command"
case ${commands[*]}
eval (pyenv "sh-\$command" \$argv)
case '*'
command pyenv "\$command" \$argv
end
end
EOS
exit 0
;;
ksh )
cat <<EOS
function pyenv {
typeset command
EOS
;;
* )
cat <<EOS
pyenv() {
typeset command
local command
EOS
;;
esac
IFS="|"
cat <<EOS
command="\$1"
if [ "\$#" -gt 0 ]; then
shift
@@ -97,7 +148,7 @@ pyenv() {
case "\$command" in
${commands[*]})
eval \`pyenv "sh-\$command" "\$@"\`;;
eval "\`pyenv "sh-\$command" "\$@"\`";;
*)
command pyenv "\$command" "\$@";;
esac

View File

@@ -46,6 +46,7 @@ elif [ -n "$versions" ]; then
fi
pyenv-version-file-write .python-version "${versions[@]}"
else
OLDIFS="$IFS"
IFS=: versions=($(
pyenv-version-file-read .python-version ||
pyenv-version-file-read .pyenv-version ||
@@ -53,6 +54,7 @@ else
exit 1
} >&2
))
IFS="$OLDIFS"
for version in "${versions[@]}"; do
echo "$version"
done

View File

@@ -17,16 +17,20 @@ fi
if [ -n "$1" ]; then
versions=($@)
OLDIFS="$IFS"
IFS=: PYENV_VERSION="${versions[*]}"
IFS="$OLDIFS"
export PYENV_VERSION
else
OLDIFS="$IFS"
IFS=: versions=($(pyenv-version-name))
IFS="$OLDIFS"
fi
PYENV_PREFIX_PATHS=()
for version in "${versions[@]}"; do
if [ "$version" = "system" ]; then
PYTHON_PATH="$(pyenv-which python || true)"
PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python || true)"
PYENV_PREFIX_PATH="${PYTHON_PATH%/*}"
else
PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}"
@@ -39,4 +43,8 @@ for version in "${versions[@]}"; do
fi
done
IFS=: echo "${PYENV_PREFIX_PATHS[*]}"
OLDIFS="$IFS"
{ IFS=:
echo "${PYENV_PREFIX_PATHS[*]}"
}
IFS="$OLDIFS"

View File

@@ -7,7 +7,19 @@ if [ "$1" = "--complete" ]; then
exec pyenv-rehash --complete
fi
shell="$(basename "$SHELL")"
# When pyenv shell integration is enabled, delegate to pyenv-rehash,
# then tell the shell to empty its command lookup cache.
pyenv-rehash
echo "hash -r"
case "$shell" in
fish )
or='; or'
;;
* )
or='||'
;;
esac
echo "hash -r 2>/dev/null $or true"

View File

@@ -24,6 +24,7 @@ if [ "$1" = "--complete" ]; then
fi
versions=("$@")
shell="$(basename "$SHELL")"
if [ -z "$versions" ]; then
if [ -z "$PYENV_VERSION" ]; then
@@ -36,15 +37,31 @@ if [ -z "$versions" ]; then
fi
if [ "$versions" = "--unset" ]; then
case "$shell" in
fish )
echo "set -e PYENV_VERSION"
;;
* )
echo "unset PYENV_VERSION"
;;
esac
exit
fi
# Make sure the specified version is installed.
if pyenv-prefix "${versions[@]}" >/dev/null; then
OLDIFS="$IFS"
IFS=: PYENV_VERSION="${versions[*]}"
IFS="$OLDIFS"
case "$shell" in
fish )
echo "setenv PYENV_VERSION \"${PYENV_VERSION}\""
;;
* )
echo "export PYENV_VERSION=\"${PYENV_VERSION}\""
;;
esac
else
echo "return 1"
echo "false"
exit 1
fi

View File

@@ -8,7 +8,9 @@
set -e
[ -n "$PYENV_DEBUG" ] && set -x
OLDIFS="$IFS"
IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name))
IFS="$OLDIFS"
for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do
echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))"

View File

@@ -18,10 +18,11 @@ if [ -e "$VERSION_FILE" ]; then
done < <( cat "$VERSION_FILE" && echo )
if [ -n "$versions" ]; then
{
IFS=:
OLDIFS="$IFS"
{ IFS=:
echo "${versions[*]}"
}
IFS="$OLDIFS"
exit
fi
fi

View File

@@ -4,11 +4,15 @@ set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ -n "$PYENV_VERSION" ]; then
OLDIFS="$IFS"
IFS=: versions=($(echo "${PYENV_VERSION}"))
IFS="$IFS"
else
PYENV_VERSION_FILE="$(pyenv-version-file)"
OLDIFS="$IFS"
IFS=: versions=($(pyenv-version-file-read "$PYENV_VERSION_FILE" || true))
IFS=: PYENV_VERSION="${versions[*]}"
IFS="$OLDIFS"
export PYENV_VERSION
fi
@@ -23,8 +27,6 @@ version_exists() {
}
for version in "${versions[@]}"; do
PYENV_VERSION_PATH="${PYENV_ROOT}/versions/${version}"
if [ "$version" != "system" ] && ! version_exists "$version"; then
echo "pyenv: version \`$version' is not installed" >&2
exit 1

View File

@@ -10,13 +10,15 @@ set -e
if [ "$1" = "--bare" ]; then
hit_prefix=""
miss_prefix=""
IFS=: current_versions=()
current_versions=()
version_origin=""
include_system=""
else
hit_prefix="* "
miss_prefix=" "
OLDIFS="$IFS"
IFS=: current_versions=($(pyenv-version-name || true))
IFS="$OLDIFS"
version_origin=" (set by $(pyenv-version-origin))"
include_system="1"
fi

View File

@@ -36,7 +36,9 @@ remove_from_path() {
fi
local paths
OLDIFS="$IFS"
IFS=: paths=($PATH)
IFS="$OLDIFS"
for path in "${paths[@]}"; do
path="$(expand_path "$path" || true)"
@@ -48,8 +50,10 @@ remove_from_path() {
echo "${result%:}"
}
OLDIFS="$IFS"
IFS=: versions=($(pyenv-version-name))
IFS=: PYENV_VERSION="${versions[*]}"
IFS="$OLDIFS"
PYENV_COMMAND="$1"
if [ -z "$PYENV_COMMAND" ]; then

1
plugins/.gitignore vendored
View File

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

View File

@@ -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.

View 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.

View File

@@ -2,14 +2,15 @@
#
# Summary: Install a Python version using the python-build plugin
#
# Usage: pyenv install [-f|--force] [-k|--keep] [-v|--verbose] <version>
# pyenv install [-f|--force] [-k|--keep] [-v|--verbose] <definition-file>
# Usage: pyenv install [-f|--force] [-g|--debug] [-k|--keep] [-v|--verbose] <version>
# pyenv install [-f|--force] [-g|--debug] [-k|--keep] [-v|--verbose] <definition-file>
# pyenv install -l|--list
#
# -l/--list List all available versions
# -f/--force Install even if the version appears to be installed already
# -k/--keep Keep source tree in $PYENV_BUILD_ROOT after installation
# (defaults to $PYENV_ROOT/sources)
# -g/--debug Build a debug version
# -v/--verbose Verbose mode: print compilation status to stdout
#
# For detailed information on installing Python versions with
@@ -37,9 +38,19 @@ usage() {
[ -z "$1" ] || exit "$1"
}
definitions() {
local query="$1"
python-build --definitions | grep -F "$query" || true
}
indent() {
sed 's/^/ /'
}
unset FORCE
unset KEEP
unset VERBOSE
unset DEBUG
parse_options "$@"
for option in "${OPTIONS[@]}"; do
@@ -49,7 +60,7 @@ for option in "${OPTIONS[@]}"; do
;;
"l" | "list" )
echo "Available versions:"
python-build --definitions | sed 's/^/ /'
definitions | indent
exit
;;
"f" | "force" )
@@ -61,6 +72,9 @@ for option in "${OPTIONS[@]}"; do
"v" | "verbose" )
VERBOSE="-v"
;;
"g" | "debug" )
DEBUG="-g"
;;
"version" )
exec python-build --version
;;
@@ -105,8 +119,11 @@ done
# Set VERSION_NAME from $DEFINITION, if it is not already set. Then
# compute the installation prefix.
[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}"
[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug"
PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}"
[ -d "${PREFIX}" ] && PREFIX_EXISTS=1
# If the installation prefix exists, prompt for confirmation unless
# the --force option was specified.
if [ -z "$FORCE" ] && [ -d "${PREFIX}/bin" ]; then
@@ -131,19 +148,52 @@ if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then
export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache"
fi
# Default PYENV_VERSION to the globally-specified Python version. (The
# CPython installer requires an existing Python installation to run. An
# unsatisfied local .python-version file can cause the installer to
# fail.)
#export PYENV_VERSION="$(pyenv global 2>/dev/null || true)"
# Execute `before_install` hooks.
for hook in "${before_hooks[@]}"; do eval "$hook"; done
# Invoke `python-build` and record the exit status in $STATUS. Run
# `pyenv rehash` after a successful installation.
# Plan cleanup on unsuccessful installation.
cleanup() {
[ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX"
}
trap cleanup SIGINT
# Invoke `python-build` and record the exit status in $STATUS.
STATUS=0
python-build $KEEP $VERBOSE "$DEFINITION" "$PREFIX" || STATUS="$?"
python-build $KEEP $VERBOSE $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?"
# Display a more helpful message if the definition wasn't found.
if [ "$STATUS" == "2" ]; then
{ candidates="$(definitions "$DEFINITION")"
if [ -n "$candidates" ]; then
echo
echo "The following versions contain \`$DEFINITION' in the name:"
echo "$candidates" | indent
fi
echo
echo "You can list all available versions with \`pyenv install --list'."
echo
echo "If the version you're looking for is not present, first try upgrading"
echo "pyenv. If it's still missing, open a request on the pyenv"
echo "issue tracker: https://github.com/yyuu/pyenv/issues"
} >&2
fi
# Execute `after_install` hooks.
for hook in "${after_hooks[@]}"; do eval "$hook"; done
# Run `pyenv-rehash` after a successful installation.
[ "$STATUS" != "0" ] || pyenv rehash
if [ "$STATUS" == "0" ]; then
pyenv rehash
else
cleanup
fi
exit "$STATUS"

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
PYTHON_BUILD_VERSION="20121023"
PYTHON_BUILD_VERSION="20131030"
set -E
exec 3<&2 # preserve original stderr at fd 3
@@ -57,6 +57,14 @@ abs_dirname() {
cd "$cwd"
}
capitalize() {
printf "%s" "$1" | tr a-z A-Z
}
sanitize() {
printf "%s" "$1" | sed "s/[^A-Za-z0-9.-]/_/g; s/__*/_/g"
}
build_failed() {
{ echo
echo "BUILD FAILED"
@@ -88,20 +96,39 @@ file_is_not_empty() {
fi
}
num_cpu_cores() {
local num=""
if [ "Darwin" = "$(uname -s)" ]; then
num="$(sysctl -n hw.ncpu 2>/dev/null || true)"
elif [ -r /proc/cpuinfo ]; then
num="$(grep -c ^processor /proc/cpuinfo)"
[ "$num" -gt 0 ] || num=""
fi
echo "${num:-2}"
}
install_package() {
install_package_using "tarball" 1 $*
install_package_using "tarball" 1 "$@"
}
install_git() {
install_package_using "git" 2 $*
install_package_using "git" 2 "$@"
}
install_hg() {
install_package_using "hg" 2 "$@"
}
install_svn() {
install_package_using "svn" 2 $*
install_package_using "svn" 2 "$@"
}
install_jar() {
install_package_using "jar" 1 $*
install_package_using "jar" 1 "$@"
}
install_zip() {
install_package_using "zip" 1 "$@"
}
install_package_using() {
@@ -110,10 +137,22 @@ install_package_using() {
local package_name="$3"
shift 3
local fetch_args=( "$package_name" "${@:1:$package_type_nargs}" )
local make_args=( "$package_name" )
local arg last_arg
for arg in "${@:$(( $package_type_nargs + 1 ))}"; do
if [ "$last_arg" = "--if" ]; then
"$arg" || return 0
elif [ "$arg" != "--if" ]; then
make_args["${#make_args[@]}"]="$arg"
fi
last_arg="$arg"
done
pushd "$BUILD_PATH" >&4
"fetch_${package_type}" "$package_name" $*
shift $(($package_type_nargs))
make_package "$package_name" $*
"fetch_${package_type}" "${fetch_args[@]}"
make_package "${make_args[@]}"
popd >&4
{ echo "Installed ${package_name} to ${PREFIX_PATH}"
@@ -121,12 +160,31 @@ install_package_using() {
} >&2
}
apply_patches() {
local package_name="$1"
local patches_path="${PYTHON_BUILD_ROOT}/share/python-build/patches/${DEFINITION_PATH##*/}"
# Support PYTHON_PATCH_STRIP, etc.
local package_var_name="$(capitalize "${package_name%%-*}")"
local PACKAGE_PATCH_STRIP="${package_var_name}_PATCH_STRIP"
for patch in "${patches_path}/${package_name}/"*; do
if [ -f "$patch" ]; then
{
echo "Applying ${patch##*/} to ${package_name}..."
patch "-p${!PACKAGE_PATCH_STRIP:-0}" < "$patch"
} >&4 2>&1
fi
done
}
make_package() {
local package_name="$1"
shift
pushd "$package_name" >&4
before_install_package "$package_name"
apply_patches "$package_name"
build_package "$package_name" $*
after_install_package "$package_name"
fix_directory_permissions
@@ -156,11 +214,11 @@ verify_checksum() {
[ -e "$filename" ] || return 0
# If there's no expected checksum, return success
local expected_checksum="$2"
local expected_checksum=`echo "$2" | tr [A-Z] [a-z]`
[ -n "$expected_checksum" ] || return 0
# If the computed checksum is empty, return failure
local computed_checksum="$(compute_md5 < "$filename")"
local computed_checksum=`echo "$(compute_md5 < "$filename")" | tr [A-Z] [a-z]`
[ -n "$computed_checksum" ] || return 1
if [ "$expected_checksum" != "$computed_checksum" ]; then
@@ -176,12 +234,13 @@ verify_checksum() {
http() {
local method="$1"
local url="$2"
local file="$3"
[ -n "$url" ] || return 1
if type curl &>/dev/null; then
"http_${method}_curl" "$url"
"http_${method}_curl" "$url" "$file"
elif type wget &>/dev/null; then
"http_${method}_wget" "$url"
"http_${method}_wget" "$url" "$file"
else
echo "error: please install \`curl\` or \`wget\` and try again" >&2
exit 1
@@ -189,11 +248,11 @@ http() {
}
http_head_curl() {
curl -sILf "$1" >&4 2>&1
curl -qsILf "$1" >&4 2>&1
}
http_get_curl() {
curl -sSLf "$1"
curl -C - -o "${2:--}" -qsSLf "$1"
}
http_head_wget() {
@@ -201,7 +260,7 @@ http_head_wget() {
}
http_get_wget() {
wget -nv -O- "$1"
wget -nv -c -O "${2:--}" "$1"
}
fetch_tarball() {
@@ -219,17 +278,34 @@ fetch_tarball() {
fi
fi
local package_filename="${package_name}.tar" # later tar can read compression algorithm from file
symlink_tarball_from_cache "$package_filename" "$checksum" || {
echo "Downloading ${package_filename}..." >&2
{ http head "$mirror_url" &&
download_tarball "$mirror_url" "$package_filename" "$checksum"
} ||
download_tarball "$package_url" "$package_filename" "$checksum"
}
local tar_args="xzvf"
local package_filename="${package_name}.tar.gz"
{ tar xvf "$package_filename"
local package_suffix extract_option
case "${package_url}" in
*".tgz" )
package_filename="${package_name}.tgz"
;;
*".tar.bz2" )
package_filename="${package_name}.tar.bz2"
tar_args="${tar_args/z/j}"
;;
esac
if ! symlink_tarball_from_cache "$package_filename" "$checksum"; then
echo "Downloading ${package_filename}..." >&2
http head "$mirror_url" &&
download_tarball "$mirror_url" "$package_filename" "$checksum" ||
download_tarball "$package_url" "$package_filename" "$checksum"
fi
{ if tar $tar_args "$package_filename"; then
if [ -z "$KEEP_BUILD_PATH" ]; then
rm -f "$package_filename"
else
true
fi
fi
} >&4 2>&1
}
@@ -254,9 +330,12 @@ download_tarball() {
echo "-> $package_url" >&2
{ http get "$package_url" > "$package_filename"
verify_checksum "$package_filename" "$checksum"
} >&4 2>&1 || return 1
if http get "$package_url" "$package_filename" >&4 2>&1; then
verify_checksum "$package_filename" "$checksum" >&4 2>&1 || return 1
else
echo "error: failed to download $package_filename" >&2
return 1
fi
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then
local cached_package_filename="${PYTHON_BUILD_CACHE_PATH}/$package_filename"
@@ -274,6 +353,20 @@ fetch_git() {
echo "Cloning ${git_url}..." >&2
if type git &>/dev/null; then
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then
pushd "$PYTHON_BUILD_CACHE_PATH" >&4
local clone_name="$(sanitize "$git_url")"
if [ -e "${clone_name}" ]; then
{ cd "${clone_name}"
git fetch --force "$git_url" "+${git_ref}:${git_ref}"
} >&4 2>&1
else
git clone --bare --branch "$git_ref" "$git_url" "${clone_name}" >&4 2>&1
fi
git_url="$PYTHON_BUILD_CACHE_PATH/${clone_name}"
popd >&4
fi
git clone --depth 1 --branch "$git_ref" "$git_url" "${package_name}" >&4 2>&1
else
echo "error: please install \`git\` and try again" >&2
@@ -281,6 +374,38 @@ fetch_git() {
fi
}
fetch_hg() {
local package_name="$1"
local hg_url="$2"
local hg_ref="$3"
echo "Cloning ${hg_url}..." >&2
if type hg &>/dev/null; then
if [ -n "$PYTHON_BUILD_CACHE_PATH" ]; then
pushd "$PYTHON_BUILD_CACHE_PATH" >&4
local clone_name="$(sanitize "$hg_url")"
if [ -e "${clone_name}" ]; then
{ cd "${clone_name}"
hg pull --force "$hg_url"
} >&4 2>&1
else
{ hg clone --branch "$hg_ref" "$hg_url" "${clone_name}"
cd "${clone_name}"
hg update null
} >&4 2>&1
fi
hg_url="$PYTHON_BUILD_CACHE_PATH/${clone_name}"
popd >&4
fi
hg clone --branch "$hg_ref" "$hg_url" "${package_name}" >&4 2>&1
else
echo "error: please install \`hg\` and try again" >&2
exit 1
fi
}
fetch_svn() {
local package_name="$1"
local svn_url="$2"
@@ -312,24 +437,56 @@ fetch_jar() {
fi
local package_filename="${package_name}.jar"
symlink_jar_from_cache "$package_filename" "checksum" || {
if ! symlink_tarball_from_cache "$package_filename" "$checksum"; then
echo "Downloading ${package_filename}..." >&2
{ http head "$mirror_url" &&
download_jar "$mirror_url" "$package_filename" "$checksum"
} ||
download_jar "$package_url" "$package_filename" "$checksum"
}
{ $JAVA -jar ${package_name}.jar -s -d ${package_name}
http head "$mirror_url" &&
download_tarball "$mirror_url" "$package_filename" "$checksum" ||
download_tarball "$package_url" "$package_filename" "$checksum"
fi
{ if $JAVA -jar ${package_name}.jar -s -d ${package_name}; then
if [ -z "$KEEP_BUILD_PATH" ]; then
rm -f "$package_filename"
else
true
fi
fi
} >&4 2>&1
}
symlink_jar_from_cache() {
symlink_tarball_from_cache "$@"
}
fetch_zip() {
local package_name="$1"
local package_url="$2"
local mirror_url
local checksum
download_jar() {
download_tarball "$@"
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"
if ! symlink_tarball_from_cache "$package_filename" "$checksum"; then
echo "Downloading ${package_filename}..." >&2
http head "$mirror_url" &&
download_tarball "$mirror_url" "$package_filename" "$checksum" ||
download_tarball "$package_url" "$package_filename" "$checksum"
fi
{ if unzip "$package_filename"; then
if [ -z "$KEEP_BUILD_PATH" ]; then
rm -f "$package_filename"
else
true
fi
fi
} >&4 2>&1
}
build_package() {
@@ -345,20 +502,18 @@ build_package() {
echo "Installing ${package_name}..." >&2
for command in $commands; do
"build_package_${command}"
"build_package_${command}" "$package_name"
done
if [ ! -f "$PYTHON_BIN" ]; then
for python in ${PREFIX_PATH}/bin/python*; do
if basename "$python" | grep '^python[0-9][0-9]*\.[0-9][0-9]*$' >/dev/null; then
{
cd ${PREFIX_PATH}/bin
ln -fs "$(basename $python)" python
}
break
fi
done
fi
package_option() {
local package_name="$1"
local command_name="$2"
local variable="$(capitalize "${package_name}_${command_name}")_OPTS_ARRAY"
local array="$variable[@]"
shift 2
local value=( "${!array}" "$@" )
eval "$variable=( \"\${value[@]}\" )"
}
build_package_standard() {
@@ -367,11 +522,28 @@ build_package_standard() {
if [ "${MAKEOPTS+defined}" ]; then
MAKE_OPTS="$MAKEOPTS"
elif [ -z "${MAKE_OPTS+defined}" ]; then
MAKE_OPTS="-j 2"
MAKE_OPTS="-j $(num_cpu_cores)"
fi
{ ./configure --prefix="$PREFIX_PATH" $CONFIGURE_OPTS
"$MAKE" $MAKE_OPTS
# Support YAML_CONFIGURE_OPTS, PYTHON_CONFIGURE_OPTS, etc.
local package_var_name="$(capitalize "${package_name%%-*}")"
local PACKAGE_CONFIGURE="${package_var_name}_CONFIGURE"
local PACKAGE_PREFIX_PATH="${package_var_name}_PREFIX_PATH"
local PACKAGE_CONFIGURE_OPTS="${package_var_name}_CONFIGURE_OPTS"
local PACKAGE_CONFIGURE_OPTS_ARRAY="${package_var_name}_CONFIGURE_OPTS_ARRAY[@]"
local PACKAGE_MAKE_OPTS="${package_var_name}_MAKE_OPTS"
local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]"
local PACKAGE_CFLAGS="${package_var_name}_CFLAGS"
( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then
export CFLAGS="$CFLAGS ${!PACKAGE_CFLAGS}"
fi
${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" \
--libdir="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}/lib" \
$CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}"
) >&4 2>&1
{ "$MAKE" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} "${!PACKAGE_MAKE_OPTS_ARRAY}"
"$MAKE" install
} >&4 2>&1
}
@@ -389,25 +561,45 @@ build_package_python() {
}
build_package_jython() {
{
build_package_copy
cd "${PREFIX_PATH}/bin"
ln -fs jython python
{ if [ -x "${PREFIX_PATH}/bin/jython" ] && [ ! -x "${PREFIX_PATH}/bin/python" ]; then
( cd "${PREFIX_PATH}/bin" && ln -fs jython python )
fi
} >&4 2>&1
}
build_package_jython_builder() {
ant >&4 2>&1
( cd "dist" && build_package_jython )
}
build_package_pypy() {
{
mkdir -p "$PREFIX_PATH"
cp -R . "$PREFIX_PATH"
cd "${PREFIX_PATH}/bin"
ln -fs pypy python
build_package_copy
{ if [ -x "${PREFIX_PATH}/bin/pypy" ] && [ ! -x "${PREFIX_PATH}/bin/python" ]; then
( cd "${PREFIX_PATH}/bin" && ln -fs pypy python )
fi
} >&4 2>&1
}
build_package_pypy_builder() {
if [ -f "rpython/bin/rpython" ]; then # pypy 2.x
python "rpython/bin/rpython" ${PYPY_OPTS:-"-Ojit"} "pypy/goal/targetpypystandalone.py" >&4 2>&1
elif [ -f "pypy/translator/goal/translate.py" ]; then # pypy 1.x
( cd "pypy/translator/goal" && python "translate.py" ${PYPY_OPTS:-"--opt=jit"} "targetpypystandalone.py" ) 1>&4 2>&1
else
echo "not a pypy source tree" 1>&3
return 1
fi
if [ -x "pypy-c" ] && [ ! -x "bin/pypy" ]; then
mkdir -p "bin"
mv -f "pypy-c" "bin/pypy"
fi
build_package_pypy
}
build_package_copy() {
mkdir -p "$PREFIX_PATH"
cp -R . "$PREFIX_PATH"
cp -fR . "$PREFIX_PATH"
}
before_install_package() {
@@ -424,36 +616,53 @@ fix_directory_permissions() {
}
require_gcc() {
local gcc="$(locate_gcc || true)"
require_cc "gcc"
}
if [ -z "$gcc" ]; then
require_cc() {
while [ -n "$1" ]; do
if [ "$1" = "--if" ]; then
"$2" || return 0
shift 2
else
break
fi
done
local cc
local ccname="${1:-cc}"
cc="$(locate_cc "$ccname" || true)"
if [ -z "$cc" ]; then
local esc=$'\033'
{ echo
echo "${esc}[1mERROR${esc}[0m: This package must be compiled with GCC, but python-build couldn't"
echo "find a suitable \`gcc\` executable on your system. Please install GCC"
echo "${esc}[1mERROR${esc}[0m: This package must be compiled with $ccname, but python-build couldn't"
echo "find a suitable \`$ccname\` executable on your system. Please install $ccname"
echo "and try again."
echo
if [ "$(uname -s)" = "Darwin" ]; then
echo "${esc}[1mDETAILS${esc}[0m: Apple no longer includes the official GCC compiler with Xcode"
echo "as of version 4.2. Instead, the \`gcc\` executable is a symlink to"
echo "\`llvm-gcc\`, a modified version of GCC which outputs LLVM bytecode."
fi
} >&3
return 1
fi
export CC="$gcc"
export CC="$cc"
}
locate_gcc() {
local gcc gccs
IFS=: gccs=($(gccs_in_path))
locate_cc "gcc" "$@"
}
verify_gcc "$CC" ||
verify_gcc "$(command -v gcc || true)" || {
for gcc in "${gccs[@]}"; do
verify_gcc "$gcc" && break || true
locate_cc() {
local ccname="$1"; shift
if [ -z "$ccname" ]; then
return 1
fi
local cc ccs
IFS=: ccs=($(ccs_in_path "${ccname}"))
verify_cc "${ccname}" "$CC" ||
verify_cc "${ccname}" "$(command -v "${ccname}" || true)" || {
for cc in "${ccs[@]}"; do
verify_cc "${ccname}" "$cc" && break || true
done
}
@@ -461,33 +670,49 @@ locate_gcc() {
}
gccs_in_path() {
local gcc path paths
local gccs=()
ccs_in_path "gcc" "$@"
}
ccs_in_path() {
local ccname="$1"; shift
if [ -z "$ccname" ]; then
return 1
fi
local cc path paths
local ccs=()
IFS=: paths=($PATH)
shopt -s nullglob
for path in "${paths[@]}"; do
for gcc in "$path"/gcc-*; do
gccs["${#gccs[@]}"]="$gcc"
for cc in "$path"/${ccname}-*; do
ccs["${#ccs[@]}"]="$cc"
done
done
shopt -u nullglob
printf :%s "${gccs[@]}"
printf :%s "${ccs[@]}"
}
verify_gcc() {
local gcc="$1"
if [ -z "$gcc" ]; then
verify_cc "gcc" "$@"
}
verify_cc() {
local ccname="$1"; shift
if [ -z "$ccname" ]; then
return 1
fi
local cc="$1"
if [ -z "$cc" ]; then
return 1
fi
local version="$("$gcc" --version || true)"
local version="$("$cc" --version || true)"
if [ -z "$version" ]; then
return 1
fi
echo "$gcc"
echo "$cc"
}
require_java() {
@@ -551,13 +776,221 @@ verify_java() {
echo "$java"
}
has_broken_mac_openssl() {
[ "$(uname -s)" = "Darwin" ] &&
[[ "$(openssl version 2>/dev/null || true)" = "OpenSSL 0.9.8"?* ]] &&
! use_homebrew_openssl
}
use_homebrew_openssl() {
local ssldir="$(brew --prefix openssl 2>/dev/null || true)"
if [ -d "$ssldir" ]; then
CPPFLAGS="-I$ssldir/include $CPPFLAGS"
LDFLAGS="-L$ssldir/lib $LDFLAGS"
else
return 1
fi
}
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"
}
# Ensure that directories listed in LDFLAGS exist
build_package_ldflags_dirs() {
local arg
for arg in $LDFLAGS; do
case "$arg" in
-L* ) mkdir -p "${arg#-L}" ;;
esac
done
}
has_broken_mac_readline() {
[ "$(uname -s)" = "Darwin" ] &&
_has_broken_mac_readline &&
! use_homebrew_readline
}
_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}" $CPPFLAGS "$conftest" 1>/dev/null 2>&1 || retval=0
rm -f "$conftest"
fi
return "$retval"
}
use_homebrew_readline() {
local rldir="$(brew --prefix readline 2>/dev/null || true)"
if [ -d "$rldir" ]; then
CPPFLAGS="-I$rldir/include $CPPFLAGS"
LDFLAGS="-L$rldir/lib $LDFLAGS"
else
return 1
fi
}
has_broken_mac_llvm_gcc() {
[ "$(uname -s)" = "Darwin" ] &&
[[ "$(gcc --version 2>/dev/null || true)" == *"llvm-gcc-4.2"* ]]
}
build_package_verify_python() {
# Check the existence of ./bin since pyenv-which searches the executables from there
if [ ! -d "${PREFIX_PATH}/bin" ]; then
echo "pyenv: invalid Python installation" >&4 2>&1
return 1
fi
# Create `python` executable if missing. Especially for Py3k.
if [ ! -e "${PREFIX_PATH}/bin/python" ]; 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
if [ ! -x "${PYTHON_BIN}" ]; then
echo "pyenv: invalid Python executable: ${PYTHON_BIN}" >&4 2>&1
return 1
fi
}
# Post-install check for Python 2.4.x
build_package_verify_py24() {
build_package_verify_python "$@"
build_package_verify_readline "$@"
build_package_verify_zlib "$@"
build_package_verify_bz2 "$@"
}
# Post-install check for Python 2.5.x
build_package_verify_py25() {
build_package_verify_py24 "$@"
build_package_verify_sqlite3 "$@"
}
# 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_python "$@"
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 "$@"
}
build_package_verify_import() {
local module="${1}"
local module_name="${2:-${module}}"
{ if ! "$PYTHON_BIN" -c "import ${module}"; then
echo
echo "The Python ${module} extension was not compiled. Missing the ${module_name}?"
echo
echo "Please consult to the Wiki page to fix the problem."
echo "https://github.com/yyuu/pyenv/wiki/Common-build-problems"
echo
return 1
fi
} >&4 2>&1
}
# Post-install check that the readline extension was built.
build_package_verify_readline() {
build_package_verify_import "readline" "GNU readline lib"
}
# Post-install check that the ssl extension was built.
build_package_verify_ssl() {
build_package_verify_import "ssl" "OpenSSL lib"
}
# Post-install check that the sqlite3 extension was built.
build_package_verify_sqlite3() {
build_package_verify_import "sqlite3" "SQLite3 lib"
}
# Post-install check that the zlib extension was built.
build_package_verify_zlib() {
build_package_verify_import "zlib" "zlib"
}
# Post-install check that the bz2 extension was built.
build_package_verify_bz2() {
build_package_verify_import "bz2" "bzip2 lib"
}
version() {
echo "python-build ${PYTHON_BUILD_VERSION}"
}
usage() {
{ version
echo "usage: python-build [-k|--keep] [-v|--verbose] definition prefix"
echo "usage: python-build [-g|--debug] [-k|--keep] [-v|--verbose] definition prefix"
echo " python-build --definitions"
} >&2
@@ -568,7 +1001,7 @@ usage() {
list_definitions() {
{ for definition in "${PYTHON_BUILD_ROOT}/share/python-build/"*; do
echo "${definition##*/}"
[ -f "${definition}" ] && echo "${definition##*/}"
done
} | sort
}
@@ -578,6 +1011,7 @@ list_definitions() {
unset VERBOSE
unset KEEP_BUILD_PATH
PYTHON_BUILD_ROOT="$(abs_dirname "$0")/.."
unset DEBUG
parse_options "$@"
@@ -587,6 +1021,7 @@ for option in "${OPTIONS[@]}"; do
usage without_exiting
{ echo
echo " -k/--keep Do not remove source tree after installation"
echo " -g/--debug Build a debug version"
echo " -v/--verbose Verbose mode: print compilation status to stdout"
echo " --definitions List all built-in definitions"
echo
@@ -603,6 +1038,9 @@ for option in "${OPTIONS[@]}"; do
"v" | "verbose" )
VERBOSE=true
;;
"g" | "debug" )
DEBUG=true
;;
"version" )
version
exit 0
@@ -619,13 +1057,15 @@ elif [ ! -e "$DEFINITION_PATH" ]; then
DEFINITION_PATH="$BUILTIN_DEFINITION_PATH"
else
echo "python-build: definition not found: ${DEFINITION_PATH}" >&2
exit 1
exit 2
fi
fi
PREFIX_PATH="${ARGUMENTS[1]}"
if [ -z "$PREFIX_PATH" ]; then
usage
elif [ "${PREFIX_PATH#/}" = "$PREFIX_PATH" ]; then
PREFIX_PATH="${PWD}/${PREFIX_PATH}"
fi
if [ -z "$TMPDIR" ]; then
@@ -634,8 +1074,27 @@ else
TMP="${TMPDIR%/}"
fi
if [ ! -w "$TMP" ] || [ ! -x "$TMP" ]; then
echo "python-build: TMPDIR=$TMP is set to a non-accessible location" >&2
exit 1
fi
# Work around warnings building Ruby 2.0 on Clang 2.x:
# pass -Wno-error=shorten-64-to-32 if the compiler accepts it.
#
# When we set CFLAGS, Ruby won't apply its default flags, though. Since clang
# builds 1.9.x and 2.x only, where -O3 is default, we can safely set that flag.
# Ensure it's the first flag since later flags take precedence.
#if "${CC:-cc}" -x c /dev/null -E -Wno-error=shorten-64-to-32 &>/dev/null; then
# PYTHON_CFLAGS="-O3 -Wno-error=shorten-64-to-32 $PYTHON_CFLAGS"
#fi
if [ -z "$MAKE" ]; then
MAKE="make"
if [[ "FreeBSD" = "$(uname -s)" ]]; then
export MAKE="gmake"
else
export MAKE="make"
fi
fi
if [ -n "$PYTHON_BUILD_CACHE_PATH" ] && [ -d "$PYTHON_BUILD_CACHE_PATH" ]; then
@@ -645,7 +1104,7 @@ else
fi
if [ -z "$PYTHON_BUILD_MIRROR_URL" ]; then
PYTHON_BUILD_MIRROR_URL="" # FIXME: setup mirror site
PYTHON_BUILD_MIRROR_URL="http://yyuu.github.io/pythons"
else
PYTHON_BUILD_MIRROR_URL="${PYTHON_BUILD_MIRROR_URL%/}"
fi
@@ -661,6 +1120,10 @@ else
unset PYTHON_BUILD_MIRROR_URL
fi
if [ -n "$DEBUG" ]; then
PYTHON_CONFIGURE_OPTS="--with-pydebug $PYTHON_CONFIGURE_OPTS"
fi
SEED="$(date "+%Y%m%d%H%M%S").$$"
LOG_PATH="${TMP}/python-build.${SEED}.log"
PYTHON_BIN="${PREFIX_PATH}/bin/python"
@@ -669,13 +1132,14 @@ CWD="$(pwd)"
if [ -z $PYTHON_BUILD_BUILD_PATH ]; then
BUILD_PATH="${TMP}/python-build.${SEED}"
else
BUILD_PATH=$PYTHON_BUILD_BUILD_PATH
BUILD_PATH="$PYTHON_BUILD_BUILD_PATH"
fi
exec 4<> "$LOG_PATH" # open the log file at fd 4
if [ -n "$VERBOSE" ]; then
tail -f "$LOG_PATH" &
trap "kill 0" SIGINT SIGTERM EXIT
TAIL_PID=$!
trap "kill $TAIL_PID" SIGINT SIGTERM EXIT
fi
export LDFLAGS="-L'${PREFIX_PATH}/lib' ${LDFLAGS}"

View File

@@ -1,7 +1,12 @@
#!/bin/sh
# Usage: PREFIX=/usr/local ./install.sh
#
# Installs python-build under $PREFIX.
set -e
cd "$(dirname "$0")"
if [ -z "${PREFIX}" ]; then
PREFIX="/usr/local"
fi
@@ -9,15 +14,7 @@ fi
BIN_PATH="${PREFIX}/bin"
SHARE_PATH="${PREFIX}/share/python-build"
mkdir -p "${BIN_PATH}"
mkdir -p "${SHARE_PATH}"
mkdir -p "$BIN_PATH" "$SHARE_PATH"
for file in bin/*; do
cp "${file}" "${BIN_PATH}"
done
for file in share/python-build/*; do
cp "${file}" "${SHARE_PATH}"
done
echo "Installed python-build at ${PREFIX}"
install -p bin/* "$BIN_PATH"
install -p share/python-build/* "$SHARE_PATH"

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4" "http://www.python.org/ftp/python/2.4/Python-2.4.tgz#149ad508f936eccf669d52682cf8e606" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.1" "http://www.python.org/ftp/python/2.4.1/Python-2.4.1.tgz#7bb2416a4f421c3452d306694d3efbba" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.2" "http://www.python.org/ftp/python/2.4.2/Python-2.4.2.tgz#07cfc759546f6723bb367be5b1ce9875" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.3" "http://www.python.org/ftp/python/2.4.3/Python-2.4.3.tgz#edf994473a8c1a963aaa71e442b285b7" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.4" "http://www.python.org/ftp/python/2.4.4/Python-2.4.4.tgz#82d000617baaef269ad5795c595fdc58" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.5" "http://www.python.org/ftp/python/2.4.5/Python-2.4.5.tgz#750b652bfdd12675e102bbe25e5e9893" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.4.6" "http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tgz#7564b2b142b1b8345cd5358b7aaaa482" standard verify_py24
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#62a9f08dd5dc69d76734568a6c040508" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5" "http://www.python.org/ftp/python/2.5/Python-2.5.tgz#bc1b74f90a472a6c0a85481aaeb43f95"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5" "http://www.python.org/ftp/python/2.5/Python-2.5.tgz#bc1b74f90a472a6c0a85481aaeb43f95" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.1" "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#cca695828df8adc3e69b637af07522e1"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.1" "http://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#cca695828df8adc3e69b637af07522e1" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.2" "http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#3f7ca8aa86c6bd275426d63b46e07992"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.2" "http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#3f7ca8aa86c6bd275426d63b46e07992" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.3" "http://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#a971f8928d6beb31ae0de56f7034d6a2"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.3" "http://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#a971f8928d6beb31ae0de56f7034d6a2" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.4" "http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#ad47b23778f64edadaaa8b5534986eed"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.4" "http://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#ad47b23778f64edadaaa8b5534986eed" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.5" "http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#abc02139ca38f4258e8e372f7da05c88"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.5" "http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#abc02139ca38f4258e8e372f7da05c88" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -1,13 +1,5 @@
case "$OSTYPE" in
linux*)
case $(uname -m) in
x86_64)
export LDFLAGS="-L/usr/lib/x86_64-linux-gnu" # to fix build on Debian amd64
;;
esac
;;
esac
install_package "Python-2.5.6" "http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#d1d9c83928561addf11d00b22a18ca50"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.5.6" "http://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#d1d9c83928561addf11d00b22a18ca50" standard verify_py25
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#cbb27a191cebc58997c4da8513863153" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-2.6-dev" "https://bitbucket.org/mirror/cpython" "2.6" standard verify_py26
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.6.6" "http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.6" "http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#b2f209df270a33315e62c1ffac1937f0" standard verify_py26
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.6.7" "http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.7" "http://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#af474f85a3af69ea50438a2a48039d7d" standard verify_py26
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.6.8" "http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.8" "http://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#f6c1781f5d73ab7dfa5181f43ea065f6" standard verify_py26
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.6.9" "http://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz#bddbd64bf6f5344fc55bbe49a72fe4f3" standard verify_py26
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.7" "http://www.python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7" "http://www.python.org/ftp/python/2.7/Python-2.7.tgz#35f56b092ecf39a6bd59d64f142aae0f" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-2.7-dev" "https://bitbucket.org/mirror/cpython" "2.7" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-2.7.1" "http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.1" "http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#15ed56733655e3fab785e49a7278d2fb" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-2.7.2" "http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.2" "http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#0ddfe265f1b3d0a8c2459f5bf66894c7" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-2.7.3" "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.3" "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#2cf641732ac23b18d139be077bd906cd" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.4" "http://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz#592603cfaf4490a980e93ecb92bde44a" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.5" "http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#b4f01a1d0ba0b46b05c73b2ac909b1df" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-2.7.6" "http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz#1d8728eb0dfcac72a0fd99c17ec7f386" standard verify_py27
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python30/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-3.0.1" "http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.0.1" "http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#220b73f0a1a20c4b1cdf9f9db4cd52fe" standard verify_py30
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-3.1-dev" "https://bitbucket.org/mirror/cpython" "3.1" standard verify_py31
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/common/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-3.1.3" "http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.1.3" "http://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#d797fa6abe82c21227e328f05a535424" standard verify_py31
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.1.4" "http://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.1.4" "http://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fa9f8efdc63944c8393870282e8b5c35" standard verify_py31
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.1.5" "http://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.1.5" "http://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#02196d3fc7bc76bdda68aa36b0dd16ab" standard verify_py31
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,13 +1,5 @@
before_install_package() {
local package_name="$1"
case "$package_name" in
Python*)
http get "https://raw.github.com/saghul/pythonz/346450868902fed0fe654c472b7b58e2e31fde70/pythonz/patches/all/python32/patch-setup.py.diff" > setup.patch
patch -p0 < setup.patch
;;
esac
}
install_package "Python-3.2" "http://www.python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2" "http://www.python.org/ftp/python/3.2/Python-3.2.tgz#5efe838a7878b170f6728d7e5d7517af" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_hg "Python-3.2-dev" "https://bitbucket.org/mirror/cpython" "3.2" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.2.1" "http://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.1" "http://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#6c2aa3481cadb7bdf74e625fffc352b2" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.2.2" "http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.2" "http://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#3c63a6d97333f4da35976b6a0755eb67" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.2.3" "http://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.3" "http://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#dcf3a738e7028f1deb41b180bf0e2cbc" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.4" "http://www.python.org/ftp/python/3.2.4/Python-3.2.4.tgz#3af05758d0bc2b1a27249e8d622c3e91" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_gcc
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.2.5" "http://www.python.org/ftp/python/3.2.5/Python-3.2.5.tgz#ed8d5529d2aebc36b53f4e0a0c9e6728" standard verify_py32
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/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-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -1,3 +1,5 @@
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254"
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.0" "http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz#198a64f7a04d1d5e95ce2782d5fd8254" standard verify_py33
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.1" "http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz#c19bfd6ea252b61779a4f2996fb3b330" standard verify_py33
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.2" "http://python.org/ftp/python/3.3.2/Python-3.3.2.tgz#0a2ea57f6184baf45b150aee53c0c8da" standard verify_py33
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.3rc1" "http://python.org/ftp/python/3.3.3/Python-3.3.3rc1.tgz#f91e09aa838743f7243f8ebfa7e7368c" standard verify_py33
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.3.3rc2" "http://python.org/ftp/python/3.3.3/Python-3.3.3rc2.tgz#64c3f7cf6832edf86f796b66689f7184" standard verify_py33
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/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-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0a2" "http://python.org/ftp/python/3.4.0/Python-3.4.0a2.tgz#e6e81242a32e6f63d224254d24edbd2f" standard verify_py34
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0a3" "http://python.org/ftp/python/3.4.0/Python-3.4.0a3.tgz#3598af9717cddd4c346d731913fdfd64" standard verify_py34
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View File

@@ -0,0 +1,5 @@
require_cc --if has_broken_mac_llvm_gcc "clang"
install_package "readline-6.2" "http://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#67948acb2ca081f23359d0256e9a271c" standard --if has_broken_mac_readline
install_package "Python-3.4.0a4" "http://python.org/ftp/python/3.4.0/Python-3.4.0a4.tgz#f874d97c90130b0249848be889b5e6e1" standard verify_py34
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" python
install_package "pip-1.4.1" "https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz#6afbb46aeb48abac658d4df742bff714" python

View 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-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" 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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View File

@@ -1,4 +1,9 @@
require_java
install_jar "Jython-2.5.0" "https://downloads.sourceforge.net/project/jython/jython/2.5.0/jython_installer-2.5.0.jar#f98b83fce9669feec69d0a17ee515a20" jython
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" 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" "https://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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View File

@@ -1,4 +1,9 @@
require_java
install_jar "Jython-2.5.1" "https://downloads.sourceforge.net/project/jython/jython/2.5.1/jython_installer-2.5.1.jar#2ee978eff4306b23753b3fe9d7af5b37" jython
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" 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" "https://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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View File

@@ -1,4 +1,6 @@
require_java
install_jar "Jython-2.5.2" "https://downloads.sourceforge.net/project/jython/jython/2.5.2/jython_installer-2.5.2.jar#7c7d9abd8985df480edeacd27ed9dcd5" jython
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" 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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View File

@@ -1,4 +1,6 @@
require_java
install_jar "Jython-2.5.3" "http://search.maven.org/remotecontent?filepath=org/python/jython-installer/2.5.3/jython-installer-2.5.3.jar#41633b4557483d6d4237ee79ffcebe7b" jython
install_package "distribute-0.6.34" "http://pypi.python.org/packages/source/d/distribute/distribute-0.6.34.tar.gz#4576ab843a6db5100fb22a72deadf56d" python
install_package "pip-1.2.1" "http://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" 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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View 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-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" 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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View 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-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" 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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View File

@@ -0,0 +1,6 @@
require_java
install_hg "jython-dev" "http://hg.python.org/jython" "default" jython_builder
install_package "setuptools-1.3.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.3.2.tar.gz#441f2e58c0599d31597622a7b9eb605f" 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" "https://pypi.python.org/packages/source/p/pip/pip-1.2.1.tar.gz#db8a6d8a4564d3dc7f337ebed67b1a85" python

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -0,0 +1,166 @@
diff -r -u ./configure ../Python-2.5/configure
--- ./configure 2006-09-05 11:54:42.000000000 +0900
+++ ../Python-2.5/configure 2013-07-19 15:27:46.000000000 +0900
@@ -1396,6 +1396,16 @@
_ACEOF
+# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
+# certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable
+# them.
+
+cat >>confdefs.h <<\_ACEOF
+#define _DARWIN_C_SOURCE 1
+_ACEOF
+
+
+
define_xopen_source=yes
# Arguments passed to configure.
@@ -3885,11 +3895,110 @@
;;
# is there any other compiler on Darwin besides gcc?
Darwin*)
- BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
+ # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
+ # used to be here, but non-Apple gcc doesn't accept them.
+ if test "${CC}" = gcc
+ then
+ { echo "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5
+echo -n "checking which compiler should be used... " >&6; }
+ case "${UNIVERSALSDK}" in
+ */MacOSX10.4u.sdk)
+ # Build using 10.4 SDK, force usage of gcc when the
+ # compiler is gcc, otherwise the user will get very
+ # confusing error messages when building on OSX 10.6
+ CC=gcc-4.0
+ CPP=cpp-4.0
+ ;;
+ esac
+ { echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+echo "$CC" >&6; }
+ fi
+
+
if test "${enable_universalsdk}"; then
- BASECFLAGS="-arch ppc -arch i386 -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
+ UNIVERSAL_ARCH_FLAGS=""
+ if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+ ARCH_RUN_32BIT=""
+ LIPO_32BIT_FLAGS=""
+ elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT="true"
+
+ elif test "$UNIVERSAL_ARCHS" = "all" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+
+ elif test "$UNIVERSAL_ARCHS" = "intel" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386"
+
+ elif test "$UNIVERSAL_ARCHS" = "3-way" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+
+ else
+ as_fn_error $? "proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way" "$LINENO" 5
+
+ fi
+
+
+ CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
+ if test "${UNIVERSALSDK}" != "/"
+ then
+ CFLAGS="-isysroot ${UNIVERSALSDK} ${CFLAGS}"
+ LDFLAGS="-isysroot ${UNIVERSALSDK} ${LDFLAGS}"
+ CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
+ fi
fi
+ # Calculate the right deployment target for this build.
+ #
+ cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
+ if test ${cur_target} '>' 10.2 && \
+ test ${cur_target} '<' 10.6
+ then
+ cur_target=10.3
+ if test ${enable_universalsdk}; then
+ if test "${UNIVERSAL_ARCHS}" = "all"; then
+ # Ensure that the default platform for a
+ # 4-way universal build is OSX 10.5,
+ # that's the first OS release where
+ # 4-way builds make sense.
+ cur_target='10.5'
+
+ elif test "${UNIVERSAL_ARCHS}" = "3-way"; then
+ cur_target='10.5'
+
+ elif test "${UNIVERSAL_ARCHS}" = "intel"; then
+ cur_target='10.5'
+
+ elif test "${UNIVERSAL_ARCHS}" = "64-bit"; then
+ cur_target='10.5'
+ fi
+ else
+ if test `/usr/bin/arch` = "i386"; then
+ # On Intel macs default to a deployment
+ # target of 10.4, that's the first OSX
+ # release with Intel support.
+ cur_target="10.4"
+ fi
+ fi
+ fi
+ CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
+
+ # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
+ # environment with a value that is the same as what we'll use
+ # in the Makefile to ensure that we'll get the same compiler
+ # environment during configure and build time.
+ MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
+ export MACOSX_DEPLOYMENT_TARGET
+ EXPORT_MACOSX_DEPLOYMENT_TARGET=''
+
;;
OSF*)
BASECFLAGS="$BASECFLAGS -mieee"
@@ -10851,7 +10960,7 @@
if test "${enable_universalsdk}"; then
:
else
- LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
+ LIBTOOL_CRUFT="${LIBTOOL_CRUFT}"
fi
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
@@ -10863,7 +10972,7 @@
else
LIBTOOL_CRUFT=""
fi
- LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
+ LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs"
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
esac
diff -r -u ./pyconfig.h.in ../Python-2.5/pyconfig.h.in
--- ./pyconfig.h.in 2006-07-30 23:09:47.000000000 +0900
+++ ../Python-2.5/pyconfig.h.in 2013-07-17 23:12:31.000000000 +0900
@@ -912,6 +912,11 @@
/* Define on Irix to enable u_int */
#undef _BSD_TYPES
+/* Define on Darwin to activate all library features */
+#ifndef _DARWIN_C_SOURCE
+#define _DARWIN_C_SOURCE
+#endif
+
/* This must be set to 64 on some systems to enable large file support. */
#undef _FILE_OFFSET_BITS

View File

@@ -0,0 +1,271 @@
diff -r -u ./Include/pymactoolbox.h ../Python-2.5/Include/pymactoolbox.h
--- ./Include/pymactoolbox.h 2004-11-05 16:02:59.000000000 +0900
+++ ../Python-2.5/Include/pymactoolbox.h 2013-07-17 23:38:51.000000000 +0900
@@ -8,7 +8,10 @@
#endif
#include <Carbon/Carbon.h>
+
+#ifndef __LP64__
#include <QuickTime/QuickTime.h>
+#endif /* !__LP64__ */
/*
** Helper routines for error codes and such.
@@ -18,8 +21,11 @@
PyObject *PyMac_GetOSErrException(void); /* Initialize & return it */
PyObject *PyErr_Mac(PyObject *, int); /* Exception with a mac error */
PyObject *PyMac_Error(OSErr); /* Uses PyMac_GetOSErrException */
+#ifndef __LP64__
extern OSErr PyMac_GetFullPathname(FSSpec *, char *, int); /* convert
fsspec->path */
+#endif /* __LP64__ */
+
/*
** These conversion routines are defined in mactoolboxglue.c itself.
*/
@@ -83,8 +89,10 @@
#endif /* USE_TOOLBOX_OBJECT_GLUE */
/* macfs exports */
+#ifndef __LP64__
int PyMac_GetFSSpec(PyObject *, FSSpec *); /* argument parser for FSSpec */
PyObject *PyMac_BuildFSSpec(FSSpec *); /* Convert FSSpec to PyObject */
+#endif /* !__LP64__ */
int PyMac_GetFSRef(PyObject *, FSRef *); /* argument parser for FSRef */
PyObject *PyMac_BuildFSRef(FSRef *); /* Convert FSRef to PyObject */
@@ -101,39 +109,54 @@
extern int CmpInstObj_Convert(PyObject *, ComponentInstance *);
/* Ctl exports */
+#ifndef __LP64__
extern PyObject *CtlObj_New(ControlHandle);
extern int CtlObj_Convert(PyObject *, ControlHandle *);
+#endif /* !__LP64__ */
/* Dlg exports */
+#ifndef __LP64__
extern PyObject *DlgObj_New(DialogPtr);
extern int DlgObj_Convert(PyObject *, DialogPtr *);
extern PyObject *DlgObj_WhichDialog(DialogPtr);
+#endif /* !__LP64__ */
/* Drag exports */
+#ifndef __LP64__
extern PyObject *DragObj_New(DragReference);
extern int DragObj_Convert(PyObject *, DragReference *);
+#endif /* !__LP64__ */
/* List exports */
+#ifndef __LP64__
extern PyObject *ListObj_New(ListHandle);
extern int ListObj_Convert(PyObject *, ListHandle *);
+#endif /* !__LP64__ */
/* Menu exports */
+#ifndef __LP64__
extern PyObject *MenuObj_New(MenuHandle);
extern int MenuObj_Convert(PyObject *, MenuHandle *);
+#endif /* !__LP64__ */
/* Qd exports */
+#ifndef __LP64__
extern PyObject *GrafObj_New(GrafPtr);
extern int GrafObj_Convert(PyObject *, GrafPtr *);
extern PyObject *BMObj_New(BitMapPtr);
extern int BMObj_Convert(PyObject *, BitMapPtr *);
extern PyObject *QdRGB_New(RGBColor *);
extern int QdRGB_Convert(PyObject *, RGBColor *);
+#endif /* !__LP64__ */
/* Qdoffs exports */
+#ifndef __LP64__
extern PyObject *GWorldObj_New(GWorldPtr);
extern int GWorldObj_Convert(PyObject *, GWorldPtr *);
+#endif /* !__LP64__ */
/* Qt exports */
+#ifndef __LP64__
extern PyObject *TrackObj_New(Track);
extern int TrackObj_Convert(PyObject *, Track *);
extern PyObject *MovieObj_New(Movie);
@@ -146,6 +169,7 @@
extern int UserDataObj_Convert(PyObject *, UserData *);
extern PyObject *MediaObj_New(Media);
extern int MediaObj_Convert(PyObject *, Media *);
+#endif /* !__LP64__ */
/* Res exports */
extern PyObject *ResObj_New(Handle);
@@ -154,13 +178,17 @@
extern int OptResObj_Convert(PyObject *, Handle *);
/* TE exports */
+#ifndef __LP64__
extern PyObject *TEObj_New(TEHandle);
extern int TEObj_Convert(PyObject *, TEHandle *);
+#endif /* !__LP64__ */
/* Win exports */
+#ifndef __LP64__
extern PyObject *WinObj_New(WindowPtr);
extern int WinObj_Convert(PyObject *, WindowPtr *);
extern PyObject *WinObj_WhichWindow(WindowPtr);
+#endif /* !__LP64__ */
/* CF exports */
extern PyObject *CFObj_New(CFTypeRef);
diff -r -u ./Mac/Modules/res/_Resmodule.c ../Python-2.5/Mac/Modules/res/_Resmodule.c
--- ./Mac/Modules/res/_Resmodule.c 2005-07-04 05:59:44.000000000 +0900
+++ ../Python-2.5/Mac/Modules/res/_Resmodule.c 2013-07-17 23:38:51.000000000 +0900
@@ -414,6 +414,7 @@
return _res;
}
+#ifndef __LP64__
static PyObject *ResObj_as_Control(ResourceObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -431,6 +432,7 @@
return _res;
}
+#endif /* !__LP64__ */
static PyObject *ResObj_LoadResource(ResourceObject *_self, PyObject *_args)
{
@@ -1152,6 +1154,7 @@
return _res;
}
+#ifndef __LP64__
static PyObject *Res_OpenRFPerm(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1287,6 +1290,7 @@
_res = Py_None;
return _res;
}
+#endif /* !__LP64__ */
static PyObject *Res_InsertResourceFile(PyObject *_self, PyObject *_args)
{
@@ -1327,6 +1331,7 @@
return _res;
}
+#ifndef __LP64__
static PyObject *Res_FSpResourceFileAlreadyOpen(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1413,6 +1418,7 @@
nextRefNum);
return _res;
}
+#endif /* !__LP64__ */
static PyObject *Res_FSOpenResFile(PyObject *_self, PyObject *_args)
{
@@ -1438,6 +1444,7 @@
return _res;
}
+#ifndef __LP64__
static PyObject *Res_FSCreateResFile(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1534,6 +1541,7 @@
PyMac_BuildFSSpec, &newSpec);
return _res;
}
+#endif /* __LP64__ */
static PyObject *Res_FSOpenResourceFile(PyObject *_self, PyObject *_args)
{
@@ -1637,6 +1645,7 @@
PyDoc_STR("(short refNum) -> (short _rv)")},
{"SetResFileAttrs", (PyCFunction)Res_SetResFileAttrs, 1,
PyDoc_STR("(short refNum, short attrs) -> None")},
+#ifndef __LP64__
{"OpenRFPerm", (PyCFunction)Res_OpenRFPerm, 1,
PyDoc_STR("(Str255 fileName, short vRefNum, SignedByte permission) -> (short _rv)")},
{"HOpenResFile", (PyCFunction)Res_HOpenResFile, 1,
@@ -1647,10 +1656,12 @@
PyDoc_STR("(FSSpec spec, SignedByte permission) -> (short _rv)")},
{"FSpCreateResFile", (PyCFunction)Res_FSpCreateResFile, 1,
PyDoc_STR("(FSSpec spec, OSType creator, OSType fileType, ScriptCode scriptTag) -> None")},
+#endif /* !__LP64__ */
{"InsertResourceFile", (PyCFunction)Res_InsertResourceFile, 1,
PyDoc_STR("(SInt16 refNum, RsrcChainLocation where) -> None")},
{"DetachResourceFile", (PyCFunction)Res_DetachResourceFile, 1,
PyDoc_STR("(SInt16 refNum) -> None")},
+#ifndef __LP64__
{"FSpResourceFileAlreadyOpen", (PyCFunction)Res_FSpResourceFileAlreadyOpen, 1,
PyDoc_STR("(FSSpec resourceFile) -> (Boolean _rv, Boolean inChain, SInt16 refNum)")},
{"FSpOpenOrphanResFile", (PyCFunction)Res_FSpOpenOrphanResFile, 1,
@@ -1659,14 +1670,17 @@
PyDoc_STR("() -> (SInt16 refNum)")},
{"GetNextResourceFile", (PyCFunction)Res_GetNextResourceFile, 1,
PyDoc_STR("(SInt16 curRefNum) -> (SInt16 nextRefNum)")},
+#endif /* __LP64__ */
{"FSOpenResFile", (PyCFunction)Res_FSOpenResFile, 1,
PyDoc_STR("(FSRef ref, SignedByte permission) -> (short _rv)")},
+#ifndef __LP64__
{"FSCreateResFile", (PyCFunction)Res_FSCreateResFile, 1,
PyDoc_STR("(FSRef parentRef, Buffer nameLength) -> (FSRef newRef, FSSpec newSpec)")},
{"FSResourceFileAlreadyOpen", (PyCFunction)Res_FSResourceFileAlreadyOpen, 1,
PyDoc_STR("(FSRef resourceFileRef) -> (Boolean _rv, Boolean inChain, SInt16 refNum)")},
{"FSCreateResourceFile", (PyCFunction)Res_FSCreateResourceFile, 1,
PyDoc_STR("(FSRef parentRef, Buffer nameLength, Buffer forkNameLength) -> (FSRef newRef, FSSpec newSpec)")},
+#endif /* __LP64__ */
{"FSOpenResourceFile", (PyCFunction)Res_FSOpenResourceFile, 1,
PyDoc_STR("(FSRef ref, Buffer forkNameLength, SignedByte permissions) -> (SInt16 refNum)")},
{"Handle", (PyCFunction)Res_Handle, 1,
diff -r -u ./Modules/_ctypes/libffi/src/darwin/ffitarget.h ../Python-2.5/Modules/_ctypes/libffi/src/darwin/ffitarget.h
--- ./Modules/_ctypes/libffi/src/darwin/ffitarget.h 2006-05-26 06:58:05.000000000 +0900
+++ ../Python-2.5/Modules/_ctypes/libffi/src/darwin/ffitarget.h 2013-07-17 23:38:51.000000000 +0900
@@ -4,7 +4,7 @@
* created by configure). This makes is possible to build a univeral binary
* of ctypes in one go.
*/
-#if defined(__i386__)
+#if defined(__i386__) || defined(__x86_64__)
#ifndef X86_DARWIN
#define X86_DARWIN
diff -r -u ./Python/mactoolboxglue.c ../Python-2.5/Python/mactoolboxglue.c
--- ./Python/mactoolboxglue.c 2006-07-12 01:44:25.000000000 +0900
+++ ../Python-2.5/Python/mactoolboxglue.c 2013-07-17 23:39:09.000000000 +0900
@@ -106,6 +106,7 @@
}
+#ifndef __LP64__
OSErr
PyMac_GetFullPathname(FSSpec *fss, char *path, int len)
{
@@ -153,6 +154,7 @@
Py_XDECREF(fs);
return err;
}
+#endif /* !__LP64__ */
/* Convert a 4-char string object argument to an OSType value */
int
@@ -417,6 +419,7 @@
GLUE_NEW(GWorldPtr, GWorldObj_New, "Carbon.Qdoffs")
GLUE_CONVERT(GWorldPtr, GWorldObj_Convert, "Carbon.Qdoffs")
+#ifndef __LP64__
GLUE_NEW(Track, TrackObj_New, "Carbon.Qt")
GLUE_CONVERT(Track, TrackObj_Convert, "Carbon.Qt")
GLUE_NEW(Movie, MovieObj_New, "Carbon.Qt")
@@ -429,6 +432,7 @@
GLUE_CONVERT(UserData, UserDataObj_Convert, "Carbon.Qt")
GLUE_NEW(Media, MediaObj_New, "Carbon.Qt")
GLUE_CONVERT(Media, MediaObj_Convert, "Carbon.Qt")
+#endif /* !__LP64__ */
GLUE_NEW(Handle, ResObj_New, "Carbon.Res")
GLUE_CONVERT(Handle, ResObj_Convert, "Carbon.Res")

View File

@@ -0,0 +1,124 @@
diff --git ./Mac/Modules/cg/_CGmodule.c ./Mac/Modules/cg/_CGmodule.c
index 8115614..e36fce9 100755
--- ./Mac/Modules/cg/_CGmodule.c
+++ ./Mac/Modules/cg/_CGmodule.c
@@ -1025,6 +1025,7 @@ static PyObject *CGContextRefObj_CGContextSetShouldAntialias(CGContextRefObject
return _res;
}
+#ifndef __LP64__
static PyObject *CGContextRefObj_SyncCGContextOriginWithPort(CGContextRefObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1055,6 +1056,7 @@ static PyObject *CGContextRefObj_ClipCGContextToRegion(CGContextRefObject *_self
_res = Py_None;
return _res;
}
+#endif
static PyMethodDef CGContextRefObj_methods[] = {
{"CGContextSaveGState", (PyCFunction)CGContextRefObj_CGContextSaveGState, 1,
@@ -1173,10 +1175,12 @@ static PyMethodDef CGContextRefObj_methods[] = {
PyDoc_STR("() -> None")},
{"CGContextSetShouldAntialias", (PyCFunction)CGContextRefObj_CGContextSetShouldAntialias, 1,
PyDoc_STR("(int shouldAntialias) -> None")},
+#ifndef __LP64__
{"SyncCGContextOriginWithPort", (PyCFunction)CGContextRefObj_SyncCGContextOriginWithPort, 1,
PyDoc_STR("(CGrafPtr port) -> None")},
{"ClipCGContextToRegion", (PyCFunction)CGContextRefObj_ClipCGContextToRegion, 1,
PyDoc_STR("(Rect portRect, RgnHandle region) -> None")},
+#endif
{NULL, NULL, 0}
};
@@ -1254,6 +1258,7 @@ PyTypeObject CGContextRef_Type = {
/* ------------------ End object type CGContextRef ------------------ */
+#ifndef __LP64__
static PyObject *CG_CreateCGContextForPort(PyObject *_self, PyObject *_args)
{
PyObject *_res = NULL;
@@ -1271,10 +1276,13 @@ static PyObject *CG_CreateCGContextForPort(PyObject *_self, PyObject *_args)
return _res;
}
+#endif
static PyMethodDef CG_methods[] = {
+#ifndef __LP64__
{"CreateCGContextForPort", (PyCFunction)CG_CreateCGContextForPort, 1,
PyDoc_STR("(CGrafPtr) -> CGContextRef")},
+#endif
{NULL, NULL, 0}
};
diff --git ./Modules/_curses_panel.c ./Modules/_curses_panel.c
index 0acf3fd..1728b59 100644
--- ./Modules/_curses_panel.c
+++ ./Modules/_curses_panel.c
@@ -56,7 +56,7 @@ typedef struct {
PyTypeObject PyCursesPanel_Type;
-#define PyCursesPanel_Check(v) ((v)->ob_type == &PyCursesPanel_Type)
+#define PyCursesPanel_Check(v) (Py_TYPE(v) == &PyCursesPanel_Type)
/* Some helper functions. The problem is that there's always a window
associated with a panel. To ensure that Python's GC doesn't pull
@@ -178,12 +178,13 @@ PyCursesPanel_New(PANEL *pan, PyCursesWindowObject *wo)
po = PyObject_NEW(PyCursesPanelObject, &PyCursesPanel_Type);
if (po == NULL) return NULL;
po->pan = pan;
- po->wo = wo;
- Py_INCREF(wo);
if (insert_lop(po) < 0) {
- PyObject_DEL(po);
- return NULL;
+ po->wo = NULL;
+ Py_DECREF(po);
+ return NULL;
}
+ po->wo = wo;
+ Py_INCREF(wo);
return (PyObject *)po;
}
@@ -191,8 +192,10 @@ static void
PyCursesPanel_Dealloc(PyCursesPanelObject *po)
{
(void)del_panel(po->pan);
- Py_DECREF(po->wo);
- remove_lop(po);
+ if (po->wo != NULL) {
+ Py_DECREF(po->wo);
+ remove_lop(po);
+ }
PyObject_DEL(po);
}
@@ -338,11 +341,10 @@ PyCursesPanel_GetAttr(PyCursesPanelObject *self, char *name)
/* -------------------------------------------------------*/
PyTypeObject PyCursesPanel_Type = {
- PyObject_HEAD_INIT(NULL)
- 0, /*ob_size*/
- "_curses_panel.curses panel", /*tp_name*/
- sizeof(PyCursesPanelObject), /*tp_basicsize*/
- 0, /*tp_itemsize*/
+ PyVarObject_HEAD_INIT(NULL, 0)
+ "_curses_panel.curses panel", /*tp_name*/
+ sizeof(PyCursesPanelObject), /*tp_basicsize*/
+ 0, /*tp_itemsize*/
/* methods */
(destructor)PyCursesPanel_Dealloc, /*tp_dealloc*/
0, /*tp_print*/
@@ -458,7 +460,7 @@ init_curses_panel(void)
PyObject *m, *d, *v;
/* Initialize object type */
- PyCursesPanel_Type.ob_type = &PyType_Type;
+ Py_TYPE(&PyCursesPanel_Type) = &PyType_Type;
import_curses();

View File

@@ -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.

View File

@@ -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);

View File

@@ -0,0 +1,166 @@
diff -r -u ./configure ../Python-2.5/configure
--- ./configure 2006-09-05 11:54:42.000000000 +0900
+++ ../Python-2.5/configure 2013-07-19 15:27:46.000000000 +0900
@@ -1396,6 +1396,16 @@
_ACEOF
+# The later defininition of _XOPEN_SOURCE and _POSIX_C_SOURCE disables
+# certain features on Mac OS X, so we need _DARWIN_C_SOURCE to re-enable
+# them.
+
+cat >>confdefs.h <<\_ACEOF
+#define _DARWIN_C_SOURCE 1
+_ACEOF
+
+
+
define_xopen_source=yes
# Arguments passed to configure.
@@ -3885,11 +3895,110 @@
;;
# is there any other compiler on Darwin besides gcc?
Darwin*)
- BASECFLAGS="$BASECFLAGS -Wno-long-double -no-cpp-precomp -mno-fused-madd"
+ # -Wno-long-double, -no-cpp-precomp, and -mno-fused-madd
+ # used to be here, but non-Apple gcc doesn't accept them.
+ if test "${CC}" = gcc
+ then
+ { echo "$as_me:${as_lineno-$LINENO}: checking which compiler should be used" >&5
+echo -n "checking which compiler should be used... " >&6; }
+ case "${UNIVERSALSDK}" in
+ */MacOSX10.4u.sdk)
+ # Build using 10.4 SDK, force usage of gcc when the
+ # compiler is gcc, otherwise the user will get very
+ # confusing error messages when building on OSX 10.6
+ CC=gcc-4.0
+ CPP=cpp-4.0
+ ;;
+ esac
+ { echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+echo "$CC" >&6; }
+ fi
+
+
if test "${enable_universalsdk}"; then
- BASECFLAGS="-arch ppc -arch i386 -isysroot ${UNIVERSALSDK} ${BASECFLAGS}"
+ UNIVERSAL_ARCH_FLAGS=""
+ if test "$UNIVERSAL_ARCHS" = "32-bit" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch ppc -arch i386"
+ ARCH_RUN_32BIT=""
+ LIPO_32BIT_FLAGS=""
+ elif test "$UNIVERSAL_ARCHS" = "64-bit" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS=""
+ ARCH_RUN_32BIT="true"
+
+ elif test "$UNIVERSAL_ARCHS" = "all" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch ppc64 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+
+ elif test "$UNIVERSAL_ARCHS" = "intel" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386"
+
+ elif test "$UNIVERSAL_ARCHS" = "3-way" ; then
+ UNIVERSAL_ARCH_FLAGS="-arch i386 -arch ppc -arch x86_64"
+ LIPO_32BIT_FLAGS="-extract ppc7400 -extract i386"
+ ARCH_RUN_32BIT="/usr/bin/arch -i386 -ppc"
+
+ else
+ as_fn_error $? "proper usage is --with-universal-arch=32-bit|64-bit|all|intel|3-way" "$LINENO" 5
+
+ fi
+
+
+ CFLAGS="${UNIVERSAL_ARCH_FLAGS} -isysroot ${UNIVERSALSDK} ${CFLAGS}"
+ if test "${UNIVERSALSDK}" != "/"
+ then
+ CFLAGS="-isysroot ${UNIVERSALSDK} ${CFLAGS}"
+ LDFLAGS="-isysroot ${UNIVERSALSDK} ${LDFLAGS}"
+ CPPFLAGS="-isysroot ${UNIVERSALSDK} ${CPPFLAGS}"
+ fi
fi
+ # Calculate the right deployment target for this build.
+ #
+ cur_target=`sw_vers -productVersion | sed 's/\(10\.[0-9]*\).*/\1/'`
+ if test ${cur_target} '>' 10.2 && \
+ test ${cur_target} '<' 10.6
+ then
+ cur_target=10.3
+ if test ${enable_universalsdk}; then
+ if test "${UNIVERSAL_ARCHS}" = "all"; then
+ # Ensure that the default platform for a
+ # 4-way universal build is OSX 10.5,
+ # that's the first OS release where
+ # 4-way builds make sense.
+ cur_target='10.5'
+
+ elif test "${UNIVERSAL_ARCHS}" = "3-way"; then
+ cur_target='10.5'
+
+ elif test "${UNIVERSAL_ARCHS}" = "intel"; then
+ cur_target='10.5'
+
+ elif test "${UNIVERSAL_ARCHS}" = "64-bit"; then
+ cur_target='10.5'
+ fi
+ else
+ if test `/usr/bin/arch` = "i386"; then
+ # On Intel macs default to a deployment
+ # target of 10.4, that's the first OSX
+ # release with Intel support.
+ cur_target="10.4"
+ fi
+ fi
+ fi
+ CONFIGURE_MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET-${cur_target}}
+
+ # Make sure that MACOSX_DEPLOYMENT_TARGET is set in the
+ # environment with a value that is the same as what we'll use
+ # in the Makefile to ensure that we'll get the same compiler
+ # environment during configure and build time.
+ MACOSX_DEPLOYMENT_TARGET="$CONFIGURE_MACOSX_DEPLOYMENT_TARGET"
+ export MACOSX_DEPLOYMENT_TARGET
+ EXPORT_MACOSX_DEPLOYMENT_TARGET=''
+
;;
OSF*)
BASECFLAGS="$BASECFLAGS -mieee"
@@ -10851,7 +10960,7 @@
if test "${enable_universalsdk}"; then
:
else
- LIBTOOL_CRUFT="${LIBTOOL_CRUFT} -arch_only `arch`"
+ LIBTOOL_CRUFT="${LIBTOOL_CRUFT}"
fi
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
@@ -10863,7 +10972,7 @@
else
LIBTOOL_CRUFT=""
fi
- LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs -arch_only `arch`"
+ LIBTOOL_CRUFT=$LIBTOOL_CRUFT" -lSystem -lSystemStubs"
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -install_name $(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK)'
LIBTOOL_CRUFT=$LIBTOOL_CRUFT' -compatibility_version $(VERSION) -current_version $(VERSION)';;
esac
diff -r -u ./pyconfig.h.in ../Python-2.5/pyconfig.h.in
--- ./pyconfig.h.in 2006-07-30 23:09:47.000000000 +0900
+++ ../Python-2.5/pyconfig.h.in 2013-07-17 23:12:31.000000000 +0900
@@ -912,6 +912,11 @@
/* Define on Irix to enable u_int */
#undef _BSD_TYPES
+/* Define on Darwin to activate all library features */
+#ifndef _DARWIN_C_SOURCE
+#define _DARWIN_C_SOURCE
+#endif
+
/* This must be set to 64 on some systems to enable large file support. */
#undef _FILE_OFFSET_BITS

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