From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 63F021393E9 for ; Sun, 30 Mar 2014 13:19:49 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CECA9E0AFF; Sun, 30 Mar 2014 13:19:48 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2B66CE0AFF for ; Sun, 30 Mar 2014 13:19:48 +0000 (UTC) Received: from spoonbill.gentoo.org (spoonbill.gentoo.org [81.93.255.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 1D15D33FD3C for ; Sun, 30 Mar 2014 13:19:47 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by spoonbill.gentoo.org (Postfix) with ESMTP id 40497188F3 for ; Sun, 30 Mar 2014 13:19:45 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1396185566.7fc1541612e9a21f739f89d0ecab9d03e76bc728.mgorny@gentoo> Subject: [gentoo-commits] dev/mgorny:master commit in: dev-python/pypy-binpackage/, dev-python/pypy-binpackage/files/ X-VCS-Repository: dev/mgorny X-VCS-Files: dev-python/pypy-binpackage/Manifest dev-python/pypy-binpackage/files/1.9-distutils-fix_handling_of_executables_and_flags.patch dev-python/pypy-binpackage/files/1.9-get_python_lib_standard_lib-04ea518e5b71.patch dev-python/pypy-binpackage/files/1.9-getargs-freelist-c26dc70ee340.patch dev-python/pypy-binpackage/files/1.9-more-ignored-ops-146ddf82a279.patch dev-python/pypy-binpackage/files/1.9-more-ignored-ops-a9a8faa76bca.patch dev-python/pypy-binpackage/files/1.9-no-bytecode-4151f9c406b6.patch dev-python/pypy-binpackage/files/1.9-no-static-hack.patch dev-python/pypy-binpackage/files/1.9-pybuffer-release-double-decref-4ec2a5b49386.patch dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch dev-python/pypy-binpackage/files/1.9-ssl-errors-25d3418150d2.patch dev-python/pypy-binpackage/files/1.9-ssl-threads-1-34b3b5aac082.patch dev-python/pypy-binpackage/files/1.9-ssl-threads-2-25cd11066d95.patch dev-python/pypy-binpackage/files/2.1-distutils-fix_handling_of_executabl es_and_flags.patch dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild X-VCS-Directories: dev-python/pypy-binpackage/ dev-python/pypy-binpackage/files/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 7fc1541612e9a21f739f89d0ecab9d03e76bc728 X-VCS-Branch: master Date: Sun, 30 Mar 2014 13:19:45 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: eee6d6b7-36e7-4402-9566-731deaec59d8 X-Archives-Hash: 78adc73c6797363abad24916ca630a8d commit: 7fc1541612e9a21f739f89d0ecab9d03e76bc728 Author: Michał Górny gentoo org> AuthorDate: Sun Mar 30 13:19:26 2014 +0000 Commit: Michał Górny gentoo org> CommitDate: Sun Mar 30 13:19:26 2014 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=7fc15416 dev-python/pypy-binpackage: Update for 2.2.1. Package-Manager: portage-2.2.10 --- dev-python/pypy-binpackage/Manifest | 2 +- ...-get_python_lib_standard_lib-04ea518e5b71.patch | 24 --- .../files/1.9-getargs-freelist-c26dc70ee340.patch | 212 --------------------- .../files/1.9-more-ignored-ops-146ddf82a279.patch | 25 --- .../files/1.9-more-ignored-ops-a9a8faa76bca.patch | 32 ---- .../files/1.9-no-bytecode-4151f9c406b6.patch | 27 --- .../pypy-binpackage/files/1.9-no-static-hack.patch | 30 --- ...buffer-release-double-decref-4ec2a5b49386.patch | 29 --- .../files/1.9-signal-a33052b17f4e.patch | 65 ------- .../files/1.9-ssl-errors-25d3418150d2.patch | 34 ---- .../files/1.9-ssl-threads-1-34b3b5aac082.patch | 143 -------------- .../files/1.9-ssl-threads-2-25cd11066d95.patch | 22 --- ...ls-fix_handling_of_executables_and_flags.patch} | 132 +++---------- .../pypy-binpackage/pypy-binpackage-2.0.2.ebuild | 2 +- ...-1.9-r2.ebuild => pypy-binpackage-2.2.1.ebuild} | 54 ++---- 15 files changed, 48 insertions(+), 785 deletions(-) diff --git a/dev-python/pypy-binpackage/Manifest b/dev-python/pypy-binpackage/Manifest index 8c45eb7..876272d 100644 --- a/dev-python/pypy-binpackage/Manifest +++ b/dev-python/pypy-binpackage/Manifest @@ -1,2 +1,2 @@ -DIST pypy-1.9.tar.bz2 13466551 SHA256 9fd599acade49ef98017bbce4f179f19cf2680489ff15235d3bad5b20bde0d68 SHA512 1e02f1f1ac493be35272212f2be62db17a01a95c56ffbd8c00a043587e38131e779928fef1383c61575ecb48bf4dc407b62726d30d5b5728221a612fe67ec8c3 WHIRLPOOL 5b601f31f695623c2e5f6d48ae902e07c5cdccafe415ae89878e5cf71408b31fc44fb1c173a93e66d81188503651000de219533e69071495b87d80a8d217274f DIST pypy-2.0.2-src.tar.bz2 14819848 SHA256 1991c90d6b98e2408b3790d4b57b71ec1c69346328b8321505ce8f6ab4544c3c SHA512 5b8b56194dff468dd249dea0014fadafb791eb69858ffae0b9c7638f087df277a84ddadc7d5b0fdb48a12ca8e6b70eb95cb5b7a5f56fe8fe3396820b814ecfd7 WHIRLPOOL bb1f71e0b2d3e145edcb1baa17b0a13c09f5229cf1b0532edbb3d0d5c87ef39543c0ef6b9dc7ce2778c4a3336d4a1580fce9cf960f82b72ddfed02e06d10d8af +DIST pypy-2.2.1-src.tar.bz2 14439822 SHA256 252045187e443656a2beb412dadac9296e8fe8db0f75a66ed5265db58c35035f SHA512 68b52c5b1a9b96593aa1dd38ad0b1b7b282852008e3ae3c488a5e19ab2bede68e2b40afdb79d85a4ab21cb1da6647b8b958fcefe34c99a1f6cbc1a19d695d3b6 WHIRLPOOL 6eca63959d8ee5663f868daaaac32ad1180b07e2f8b63d839652902095a098ffbfa29c6f83451733270a4b2f73b65450cb3b80a878b9dd1ec71089bfff11e9f6 diff --git a/dev-python/pypy-binpackage/files/1.9-get_python_lib_standard_lib-04ea518e5b71.patch b/dev-python/pypy-binpackage/files/1.9-get_python_lib_standard_lib-04ea518e5b71.patch deleted file mode 100644 index e6c98a5..0000000 --- a/dev-python/pypy-binpackage/files/1.9-get_python_lib_standard_lib-04ea518e5b71.patch +++ /dev/null @@ -1,24 +0,0 @@ -changeset: 55566:04ea518e5b71 -parent: 55554:fa1ecb3a52df -user: Armin Rigo -date: Mon Jun 11 10:28:26 2012 +0200 -summary: issue1164: get_python_lib(standard_lib=1) should probably just - -diff -r fa1ecb3a52df -r 04ea518e5b71 lib-python/2.7/distutils/sysconfig_pypy.py ---- a/lib-python/2.7/distutils/sysconfig_pypy.py Sun Jun 10 23:49:16 2012 +0300 -+++ b/lib-python/2.7/distutils/sysconfig_pypy.py Mon Jun 11 10:28:26 2012 +0200 -@@ -39,11 +39,10 @@ - If 'prefix' is supplied, use it instead of sys.prefix or - sys.exec_prefix -- i.e., ignore 'plat_specific'. - """ -- if standard_lib: -- raise DistutilsPlatformError( -- "calls to get_python_lib(standard_lib=1) cannot succeed") - if prefix is None: - prefix = PREFIX -+ if standard_lib: -+ return os.path.join(prefix, "lib-python", get_python_version()) - return os.path.join(prefix, 'site-packages') - - - diff --git a/dev-python/pypy-binpackage/files/1.9-getargs-freelist-c26dc70ee340.patch b/dev-python/pypy-binpackage/files/1.9-getargs-freelist-c26dc70ee340.patch deleted file mode 100644 index 70619dc..0000000 --- a/dev-python/pypy-binpackage/files/1.9-getargs-freelist-c26dc70ee340.patch +++ /dev/null @@ -1,212 +0,0 @@ -# HG changeset patch -# User Armin Rigo -# Date 1339595299 -7200 -# Node ID c26dc70ee34018efeec8b789d40ec78478304bc0 -# Parent c7dff5469611f03946466caed17c567c4ea5d8d0 -Fix for the issue of abuse of PyCapsules, relying on immediate -destruction, as CPython does. This problem was first described in -https://bazaar.launchpad.net/~exarkun/pyopenssl/trunk/revision/166. -The fix is rather obvious and consist in a *negative* total amount -of lines :-/ - -diff -r c7dff5469611f03946466caed17c567c4ea5d8d0 -r c26dc70ee34018efeec8b789d40ec78478304bc0 pypy/module/cpyext/src/getargs.c ---- a/pypy/module/cpyext/src/getargs.c Wed Jun 13 13:19:05 2012 +0200 -+++ b/pypy/module/cpyext/src/getargs.c Wed Jun 13 15:48:19 2012 +0200 -@@ -24,14 +24,15 @@ - - - /* Forward */ -+typedef struct freelist_s freelist_t; - static int vgetargs1(PyObject *, const char *, va_list *, int); - static void seterror(int, const char *, int *, const char *, const char *); - static char *convertitem(PyObject *, const char **, va_list *, int, int *, -- char *, size_t, PyObject **); -+ char *, size_t, freelist_t **); - static char *converttuple(PyObject *, const char **, va_list *, int, -- int *, char *, size_t, int, PyObject **); -+ int *, char *, size_t, int, freelist_t **); - static char *convertsimple(PyObject *, const char **, va_list *, int, char *, -- size_t, PyObject **); -+ size_t, freelist_t **); - static Py_ssize_t convertbuffer(PyObject *, void **p, char **); - static int getbuffer(PyObject *, Py_buffer *, char**); - -@@ -128,72 +129,45 @@ - - /* Handle cleanup of allocated memory in case of exception */ - --#define GETARGS_CAPSULE_NAME_CLEANUP_PTR "getargs.cleanup_ptr" --#define GETARGS_CAPSULE_NAME_CLEANUP_BUFFER "getargs.cleanup_buffer" -+typedef void (*cleanup_fn)(void *); - --static void --cleanup_ptr(PyObject *self) --{ -- void *ptr = PyCapsule_GetPointer(self, GETARGS_CAPSULE_NAME_CLEANUP_PTR); -- if (ptr) { -- PyMem_FREE(ptr); -- } --} -+struct freelist_s { -+ void *ptr; -+ cleanup_fn destr; -+ struct freelist_s *next; -+}; - --static void --cleanup_buffer(PyObject *self) --{ -- Py_buffer *ptr = (Py_buffer *)PyCapsule_GetPointer(self, GETARGS_CAPSULE_NAME_CLEANUP_BUFFER); -- if (ptr) { -- PyBuffer_Release(ptr); -- } --} -+#define cleanup_ptr ((cleanup_fn)PyMem_FREE) -+#define cleanup_buffer ((cleanup_fn)PyBuffer_Release) - - static int --addcleanup(void *ptr, PyObject **freelist, PyCapsule_Destructor destr) -+addcleanup(void *ptr, freelist_t **freelist, cleanup_fn destr) - { -- PyObject *cobj; -- const char *name; -- -- if (!*freelist) { -- *freelist = PyList_New(0); -- if (!*freelist) { -- destr(ptr); -- return -1; -- } -- } -- -- if (destr == cleanup_ptr) { -- name = GETARGS_CAPSULE_NAME_CLEANUP_PTR; -- } else if (destr == cleanup_buffer) { -- name = GETARGS_CAPSULE_NAME_CLEANUP_BUFFER; -- } else { -- return -1; -- } -- cobj = PyCapsule_New(ptr, name, destr); -- if (!cobj) { -+ freelist_t *node = PyMem_MALLOC(sizeof(freelist_t)); -+ if (!node) { - destr(ptr); - return -1; - } -- if (PyList_Append(*freelist, cobj)) { -- Py_DECREF(cobj); -- return -1; -- } -- Py_DECREF(cobj); -+ node->ptr = ptr; -+ node->destr = destr; -+ node->next = *freelist; -+ *freelist = node; - return 0; - } - - static int --cleanreturn(int retval, PyObject *freelist) -+cleanreturn(int retval, freelist_t *freelist) - { -- if (freelist && retval != 0) { -- /* We were successful, reset the destructors so that they -- don't get called. */ -- Py_ssize_t len = PyList_GET_SIZE(freelist), i; -- for (i = 0; i < len; i++) -- PyCapsule_SetDestructor(PyList_GET_ITEM(freelist, i), NULL); -+ freelist_t *next; -+ while (freelist != NULL) { -+ if (retval == 0) { -+ /* Leaving with an error */ -+ freelist->destr(freelist->ptr); -+ } -+ next = freelist->next; -+ PyMem_FREE(freelist); -+ freelist = next; - } -- Py_XDECREF(freelist); - return retval; - } - -@@ -212,7 +186,7 @@ - const char *formatsave = format; - Py_ssize_t i, len; - char *msg; -- PyObject *freelist = NULL; -+ freelist_t *freelist = NULL; - int compat = flags & FLAG_COMPAT; - - assert(compat || (args != (PyObject*)NULL)); -@@ -412,7 +386,7 @@ - static char * - converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags, - int *levels, char *msgbuf, size_t bufsize, int toplevel, -- PyObject **freelist) -+ freelist_t **freelist) - { - int level = 0; - int n = 0; -@@ -488,7 +462,7 @@ - - static char * - convertitem(PyObject *arg, const char **p_format, va_list *p_va, int flags, -- int *levels, char *msgbuf, size_t bufsize, PyObject **freelist) -+ int *levels, char *msgbuf, size_t bufsize, freelist_t **freelist) - { - char *msg; - const char *format = *p_format; -@@ -569,7 +543,7 @@ - - static char * - convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, -- char *msgbuf, size_t bufsize, PyObject **freelist) -+ char *msgbuf, size_t bufsize, freelist_t **freelist) - { - /* For # codes */ - #define FETCH_SIZE int *q=NULL;Py_ssize_t *q2=NULL;\ -@@ -1534,7 +1508,8 @@ - const char *fname, *msg, *custom_msg, *keyword; - int min = INT_MAX; - int i, len, nargs, nkeywords; -- PyObject *freelist = NULL, *current_arg; -+ freelist_t *freelist = NULL; -+ PyObject *current_arg; - - assert(args != NULL && PyTuple_Check(args)); - assert(keywords == NULL || PyDict_Check(keywords)); -diff -r c7dff5469611f03946466caed17c567c4ea5d8d0 -r c26dc70ee34018efeec8b789d40ec78478304bc0 pypy/module/cpyext/test/test_getargs.py ---- a/pypy/module/cpyext/test/test_getargs.py Wed Jun 13 13:19:05 2012 +0200 -+++ b/pypy/module/cpyext/test/test_getargs.py Wed Jun 13 15:48:19 2012 +0200 -@@ -144,6 +144,31 @@ - assert 'foo\0bar\0baz' == pybuffer(buffer('foo\0bar\0baz')) - - -+ def test_pyarg_parse_string_fails(self): -+ """ -+ Test the failing case of PyArg_ParseTuple(): it must not keep -+ a reference on the PyObject passed in. -+ """ -+ pybuffer = self.import_parser( -+ ''' -+ Py_buffer buf1, buf2, buf3; -+ PyObject *result; -+ if (!PyArg_ParseTuple(args, "s*s*s*", &buf1, &buf2, &buf3)) { -+ return NULL; -+ } -+ Py_FatalError("should not get there"); -+ return NULL; -+ ''') -+ freed = [] -+ class freestring(str): -+ def __del__(self): -+ freed.append('x') -+ raises(TypeError, pybuffer, -+ freestring("string"), freestring("other string"), 42) -+ import gc; gc.collect() -+ assert freed == ['x', 'x'] -+ -+ - def test_pyarg_parse_charbuf_and_length(self): - """ - The `t#` format specifier can be used to parse a read-only 8-bit diff --git a/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-146ddf82a279.patch b/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-146ddf82a279.patch deleted file mode 100644 index 146399d..0000000 --- a/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-146ddf82a279.patch +++ /dev/null @@ -1,25 +0,0 @@ -changeset: 55567:146ddf82a279 -user: Armin Rigo -date: Mon Jun 11 10:33:19 2012 +0200 -summary: More ignored ops - -diff -r 04ea518e5b71 -r 146ddf82a279 pypy/translator/c/gcc/trackgcroot.py ---- a/pypy/translator/c/gcc/trackgcroot.py Mon Jun 11 10:28:26 2012 +0200 -+++ b/pypy/translator/c/gcc/trackgcroot.py Mon Jun 11 10:33:19 2012 +0200 -@@ -476,13 +476,13 @@ - # floating-point operations cannot produce GC pointers - 'f', - 'cvt', 'ucomi', 'comi', 'subs', 'subp' , 'adds', 'addp', 'xorp', -- 'movap', 'movd', 'movlp', 'sqrtsd', 'movhpd', -+ 'movap', 'movd', 'movlp', 'sqrt', 'rsqrt', 'movhpd', - 'mins', 'minp', 'maxs', 'maxp', 'unpck', 'pxor', 'por', # sse2 - 'shufps', 'shufpd', - # arithmetic operations should not produce GC pointers - 'inc', 'dec', 'not', 'neg', 'or', 'and', 'sbb', 'adc', - 'shl', 'shr', 'sal', 'sar', 'rol', 'ror', 'mul', 'imul', 'div', 'idiv', -- 'bswap', 'bt', 'rdtsc', -+ 'bswap', 'bt', 'rdtsc', 'rounds', - 'pabs', 'pack', 'padd', 'palign', 'pand', 'pavg', 'pcmp', 'pextr', - 'phadd', 'phsub', 'pinsr', 'pmadd', 'pmax', 'pmin', 'pmovmsk', - 'pmul', 'por', 'psadb', 'pshuf', 'psign', 'psll', 'psra', 'psrl', - diff --git a/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-a9a8faa76bca.patch b/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-a9a8faa76bca.patch deleted file mode 100644 index 51a53ca..0000000 --- a/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-a9a8faa76bca.patch +++ /dev/null @@ -1,32 +0,0 @@ -changeset: 55523:a9a8faa76bca -parent: 55518:f0daafccddc5 -user: Armin Rigo -date: Fri Jun 08 19:55:01 2012 +0200 -summary: Add more instructions to ignore by copying from Intel docs. - -diff -r f0daafccddc5 -r a9a8faa76bca pypy/translator/c/gcc/trackgcroot.py ---- a/pypy/translator/c/gcc/trackgcroot.py Fri Jun 08 18:30:54 2012 +0200 -+++ b/pypy/translator/c/gcc/trackgcroot.py Fri Jun 08 19:55:01 2012 +0200 -@@ -483,8 +483,10 @@ - 'inc', 'dec', 'not', 'neg', 'or', 'and', 'sbb', 'adc', - 'shl', 'shr', 'sal', 'sar', 'rol', 'ror', 'mul', 'imul', 'div', 'idiv', - 'bswap', 'bt', 'rdtsc', -- 'punpck', 'pshufd', 'pcmp', 'pand', 'psllw', 'pslld', 'psllq', -- 'paddq', 'pinsr', 'pmul', 'psrl', -+ 'pabs', 'pack', 'padd', 'palign', 'pand', 'pavg', 'pcmp', 'pextr', -+ 'phadd', 'phsub', 'pinsr', 'pmadd', 'pmax', 'pmin', 'pmovmsk', -+ 'pmul', 'por', 'psadb', 'pshuf', 'psign', 'psll', 'psra', 'psrl', -+ 'psub', 'punpck', 'pxor', - # all vectors don't produce pointers - 'v', - # sign-extending moves should not produce GC pointers -@@ -492,7 +494,7 @@ - # zero-extending moves should not produce GC pointers - 'movz', - # locked operations should not move GC pointers, at least so far -- 'lock', -+ 'lock', 'pause', - ]) - - # a partial list is hopefully good enough for now; it's all to support - diff --git a/dev-python/pypy-binpackage/files/1.9-no-bytecode-4151f9c406b6.patch b/dev-python/pypy-binpackage/files/1.9-no-bytecode-4151f9c406b6.patch deleted file mode 100644 index 5fab3a5..0000000 --- a/dev-python/pypy-binpackage/files/1.9-no-bytecode-4151f9c406b6.patch +++ /dev/null @@ -1,27 +0,0 @@ -# HG changeset patch -# User Armin Rigo -# Date 1339165065 -7200 -# Node ID 4151f9c406b62f6c4a1fdd669389eb46eb90f9cb -# Parent 68f8d7152a45fa7856a2a013799874614fcd9c33 -issue1043 3rd issue fixed - -diff -r 68f8d7152a45fa7856a2a013799874614fcd9c33 -r 4151f9c406b62f6c4a1fdd669389eb46eb90f9cb pypy/translator/goal/app_main.py ---- a/pypy/translator/goal/app_main.py Fri Jun 08 16:06:33 2012 +0200 -+++ b/pypy/translator/goal/app_main.py Fri Jun 08 16:17:45 2012 +0200 -@@ -457,13 +457,13 @@ - - if PYTHON26 and not options["ignore_environment"]: - if os.getenv('PYTHONNOUSERSITE'): -- options["no_user_site"] = True -+ options["no_user_site"] = 1 - if os.getenv('PYTHONDONTWRITEBYTECODE'): -- options["dont_write_bytecode"] = True -+ options["dont_write_bytecode"] = 1 - - if (options["interactive"] or - (not options["ignore_environment"] and os.getenv('PYTHONINSPECT'))): -- options["inspect"] = True -+ options["inspect"] = 1 - - if PYTHON26 and we_are_translated(): - flags = [options[flag] for flag in sys_flags] diff --git a/dev-python/pypy-binpackage/files/1.9-no-static-hack.patch b/dev-python/pypy-binpackage/files/1.9-no-static-hack.patch deleted file mode 100644 index fe75ac2..0000000 --- a/dev-python/pypy-binpackage/files/1.9-no-static-hack.patch +++ /dev/null @@ -1,30 +0,0 @@ -Remove logic that links to libssl and libcrypto statically if -possible. Just always link dynamically: Gentoo is expected to have -sane dynamic libraries for us to use, and our users are not expected -to copy their pypy binary to a system with an incompatible -libssl/libcrypto and expect it to work. - -Patch contributed by XU Benda . - ---- pypy/rlib/ropenssl.py 2012-06-07 21:24:48.000000000 +0900 -+++ pypy/rlib/ropenssl.py.new 2012-06-10 17:28:29.000000000 +0900 -@@ -19,18 +19,8 @@ if sys.platform == 'win32' and platform. - # so that openssl/ssl.h can repair this nonsense. - 'wincrypt.h'] - else: -- libraries = ['z'] -+ libraries = ['z', 'ssl', 'crypto'] - includes = [] -- if (sys.platform.startswith('linux') and -- os.path.exists('/usr/lib/libssl.a') and -- os.path.exists('/usr/lib/libcrypto.a')): -- # use static linking to avoid the infinite -- # amount of troubles due to symbol versions -- # and 0.9.8/1.0.0 -- link_files += ['/usr/lib/libssl.a', '/usr/lib/libcrypto.a'] -- testonly_libraries += ['ssl', 'crypto'] -- else: -- libraries += ['ssl', 'crypto'] - - includes += [ - 'openssl/ssl.h', diff --git a/dev-python/pypy-binpackage/files/1.9-pybuffer-release-double-decref-4ec2a5b49386.patch b/dev-python/pypy-binpackage/files/1.9-pybuffer-release-double-decref-4ec2a5b49386.patch deleted file mode 100644 index 58c301e..0000000 --- a/dev-python/pypy-binpackage/files/1.9-pybuffer-release-double-decref-4ec2a5b49386.patch +++ /dev/null @@ -1,29 +0,0 @@ -changeset: 55598:4ec2a5b49386 -tag: tip -user: Armin Rigo -date: Mon Jun 11 19:54:04 2012 +0200 -summary: Test and fix (thanks marienz) - -diff -r cdb2d1b3d0da -r 4ec2a5b49386 pypy/module/cpyext/object.py ---- a/pypy/module/cpyext/object.py Mon Jun 11 19:41:35 2012 +0200 -+++ b/pypy/module/cpyext/object.py Mon Jun 11 19:54:04 2012 +0200 -@@ -489,3 +489,4 @@ - provides a subset of CPython's behavior. - """ - Py_DecRef(space, view.c_obj) -+ view.c_obj = lltype.nullptr(PyObject.TO) -diff -r cdb2d1b3d0da -r 4ec2a5b49386 pypy/module/cpyext/test/test_object.py ---- a/pypy/module/cpyext/test/test_object.py Mon Jun 11 19:41:35 2012 +0200 -+++ b/pypy/module/cpyext/test/test_object.py Mon Jun 11 19:54:04 2012 +0200 -@@ -363,6 +363,10 @@ - * Py_buffer and the string should be released as well. - */ - PyBuffer_Release(&buf); -+ assert(!buf.obj); -+ PyBuffer_Release(&buf); /* call again, should not have any more effect */ -+ PyBuffer_Release(&buf); -+ PyBuffer_Release(&buf); - - Py_RETURN_NONE; - """)]) - diff --git a/dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch b/dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch deleted file mode 100644 index 6087122..0000000 --- a/dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch +++ /dev/null @@ -1,65 +0,0 @@ -changeset: 55595:a33052b17f4e -parent: 55589:4f58f2db96c0 -user: Armin Rigo -date: Mon Jun 11 18:06:35 2012 +0200 -summary: issue1167: changed the test (according to py.test -A on Linux), and fix - -diff -r 4f58f2db96c0 -r a33052b17f4e pypy/module/signal/interp_signal.py ---- a/pypy/module/signal/interp_signal.py Mon Jun 11 17:05:01 2012 +0200 -+++ b/pypy/module/signal/interp_signal.py Mon Jun 11 18:06:35 2012 +0200 -@@ -227,7 +227,7 @@ - None -- if an unknown handler is in effect (XXX UNIMPLEMENTED) - anything else -- the callable Python object used as a handler - """ -- check_signum(space, signum) -+ check_signum_in_range(space, signum) - action = space.check_signal_action - if signum in action.handlers_w: - return action.handlers_w[signum] -@@ -253,12 +253,18 @@ - c_pause() - return space.w_None - --def check_signum(space, signum): -+def check_signum_exists(space, signum): - if signum in signal_values: - return - raise OperationError(space.w_ValueError, - space.wrap("invalid signal value")) - -+def check_signum_in_range(space, signum): -+ if 1 <= signum < NSIG: -+ return -+ raise OperationError(space.w_ValueError, -+ space.wrap("signal number out of range")) -+ - - @jit.dont_look_inside - @unwrap_spec(signum=int) -@@ -319,7 +325,7 @@ - - @unwrap_spec(signum=int, flag=int) - def siginterrupt(space, signum, flag): -- check_signum(space, signum) -+ check_signum_exists(space, signum) - if rffi.cast(lltype.Signed, c_siginterrupt(signum, flag)) < 0: - errno = rposix.get_errno() - raise OperationError(space.w_RuntimeError, space.wrap(errno)) -diff -r 4f58f2db96c0 -r a33052b17f4e pypy/module/signal/test/test_signal.py ---- a/pypy/module/signal/test/test_signal.py Mon Jun 11 17:05:01 2012 +0200 -+++ b/pypy/module/signal/test/test_signal.py Mon Jun 11 18:06:35 2012 +0200 -@@ -154,7 +154,12 @@ - - raises(ValueError, getsignal, 4444) - raises(ValueError, signal, 4444, lambda *args: None) -- raises(ValueError, signal, 42, lambda *args: None) -+ import sys -+ if sys.platform == 'win32': -+ raises(ValueError, signal, 42, lambda *args: None) -+ else: -+ signal(42, lambda *args: None) -+ signal(42, SIG_DFL) - - def test_alarm(self): - try: - diff --git a/dev-python/pypy-binpackage/files/1.9-ssl-errors-25d3418150d2.patch b/dev-python/pypy-binpackage/files/1.9-ssl-errors-25d3418150d2.patch deleted file mode 100644 index 78affe9..0000000 --- a/dev-python/pypy-binpackage/files/1.9-ssl-errors-25d3418150d2.patch +++ /dev/null @@ -1,34 +0,0 @@ -# HG changeset patch -# User Amaury Forgeot d'Arc -# Date 1339449304 -7200 -# Node ID 25d3418150d2e2820913043432f568e31bf3a19a -# Parent 33c305197a3d05217be023fa39a692ad89802317 -issue1169: _ssl errors outside any SSL context should use ERR_peek_last_error() - -diff -r 33c305197a3d05217be023fa39a692ad89802317 -r 25d3418150d2e2820913043432f568e31bf3a19a pypy/module/_ssl/interp_ssl.py ---- a/pypy/module/_ssl/interp_ssl.py Mon Jun 11 23:01:31 2012 +0200 -+++ b/pypy/module/_ssl/interp_ssl.py Mon Jun 11 23:15:04 2012 +0200 -@@ -789,7 +789,11 @@ - def _ssl_seterror(space, ss, ret): - assert ret <= 0 - -- if ss and ss.ssl: -+ if ss is None: -+ errval = libssl_ERR_peek_last_error() -+ errstr = rffi.charp2str(libssl_ERR_error_string(errval, None)) -+ return ssl_error(space, errstr, errval) -+ elif ss.ssl: - err = libssl_SSL_get_error(ss.ssl, ret) - else: - err = SSL_ERROR_SSL -diff -r 33c305197a3d05217be023fa39a692ad89802317 -r 25d3418150d2e2820913043432f568e31bf3a19a pypy/rlib/ropenssl.py ---- a/pypy/rlib/ropenssl.py Mon Jun 11 23:01:31 2012 +0200 -+++ b/pypy/rlib/ropenssl.py Mon Jun 11 23:15:04 2012 +0200 -@@ -259,6 +259,7 @@ - ssl_external('SSL_CIPHER_get_bits', [SSL_CIPHER, rffi.INTP], rffi.INT) - - ssl_external('ERR_get_error', [], rffi.INT) -+ssl_external('ERR_peek_last_error', [], rffi.INT) - ssl_external('ERR_error_string', [rffi.ULONG, rffi.CCHARP], rffi.CCHARP) - - ssl_external('SSL_free', [SSL], lltype.Void) diff --git a/dev-python/pypy-binpackage/files/1.9-ssl-threads-1-34b3b5aac082.patch b/dev-python/pypy-binpackage/files/1.9-ssl-threads-1-34b3b5aac082.patch deleted file mode 100644 index ac5d7ad..0000000 --- a/dev-python/pypy-binpackage/files/1.9-ssl-threads-1-34b3b5aac082.patch +++ /dev/null @@ -1,143 +0,0 @@ -changeset: 55575:34b3b5aac082 -parent: 55569:fa8262a5746a -user: Armin Rigo -date: Mon Jun 11 14:38:35 2012 +0200 -summary: Move the callback logic to C code instead of using RPython code - -diff -r fa8262a5746a -r 34b3b5aac082 pypy/module/_ssl/__init__.py ---- a/pypy/module/_ssl/__init__.py Mon Jun 11 11:04:53 2012 +0200 -+++ b/pypy/module/_ssl/__init__.py Mon Jun 11 14:38:35 2012 +0200 -@@ -31,5 +31,6 @@ - def startup(self, space): - from pypy.rlib.ropenssl import init_ssl - init_ssl() -- from pypy.module._ssl.interp_ssl import setup_ssl_threads -- setup_ssl_threads() -+ if space.config.objspace.usemodules.thread: -+ from pypy.module._ssl.thread_lock import setup_ssl_threads -+ setup_ssl_threads() -diff -r fa8262a5746a -r 34b3b5aac082 pypy/module/_ssl/interp_ssl.py ---- a/pypy/module/_ssl/interp_ssl.py Mon Jun 11 11:04:53 2012 +0200 -+++ b/pypy/module/_ssl/interp_ssl.py Mon Jun 11 14:38:35 2012 +0200 -@@ -880,38 +880,3 @@ - libssl_X509_free(x) - finally: - libssl_BIO_free(cert) -- --# this function is needed to perform locking on shared data --# structures. (Note that OpenSSL uses a number of global data --# structures that will be implicitly shared whenever multiple threads --# use OpenSSL.) Multi-threaded applications will crash at random if --# it is not set. --# --# locking_function() must be able to handle up to CRYPTO_num_locks() --# different mutex locks. It sets the n-th lock if mode & CRYPTO_LOCK, and --# releases it otherwise. --# --# filename and line are the file number of the function setting the --# lock. They can be useful for debugging. --_ssl_locks = [] -- --def _ssl_thread_locking_function(mode, n, filename, line): -- n = intmask(n) -- if n < 0 or n >= len(_ssl_locks): -- return -- -- if intmask(mode) & CRYPTO_LOCK: -- _ssl_locks[n].acquire(True) -- else: -- _ssl_locks[n].release() -- --def _ssl_thread_id_function(): -- from pypy.module.thread import ll_thread -- return rffi.cast(rffi.LONG, ll_thread.get_ident()) -- --def setup_ssl_threads(): -- from pypy.module.thread import ll_thread -- for i in range(libssl_CRYPTO_num_locks()): -- _ssl_locks.append(ll_thread.allocate_lock()) -- libssl_CRYPTO_set_locking_callback(_ssl_thread_locking_function) -- libssl_CRYPTO_set_id_callback(_ssl_thread_id_function) -diff -r fa8262a5746a -r 34b3b5aac082 pypy/module/_ssl/thread_lock.py ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/pypy/module/_ssl/thread_lock.py Mon Jun 11 14:38:35 2012 +0200 -@@ -0,0 +1,78 @@ -+from pypy.rlib.ropenssl import * -+from pypy.rpython.lltypesystem import lltype, rffi -+from pypy.translator.tool.cbuild import ExternalCompilationInfo -+ -+# CRYPTO_set_locking_callback: -+# -+# this function is needed to perform locking on shared data -+# structures. (Note that OpenSSL uses a number of global data -+# structures that will be implicitly shared whenever multiple threads -+# use OpenSSL.) Multi-threaded applications will crash at random if -+# it is not set. -+# -+# locking_function() must be able to handle up to CRYPTO_num_locks() -+# different mutex locks. It sets the n-th lock if mode & CRYPTO_LOCK, and -+# releases it otherwise. -+# -+# filename and line are the file number of the function setting the -+# lock. They can be useful for debugging. -+ -+ -+# This logic is moved to C code so that the callbacks can be invoked -+# without caring about the GIL. -+ -+separate_module_source = """ -+ -+#include -+ -+static unsigned int _ssl_locks_count = 0; -+static struct RPyOpaque_ThreadLock *_ssl_locks; -+ -+static unsigned long _ssl_thread_id_function(void) { -+ return RPyThreadGetIdent(); -+} -+ -+static void _ssl_thread_locking_function(int mode, int n, const char *file, -+ int line) { -+ if ((_ssl_locks == NULL) || -+ (n < 0) || ((unsigned)n >= _ssl_locks_count)) -+ return; -+ -+ if (mode & CRYPTO_LOCK) { -+ RPyThreadAcquireLock(_ssl_locks[n], 1); -+ } else { -+ RPyThreadReleaseLock(_ssl_locks[n]); -+ } -+} -+ -+int _PyPy_SSL_SetupThreads(void) -+{ -+ unsigned int i; -+ _ssl_locks_count = CRYPTO_num_locks(); -+ _ssl_locks = calloc(_ssl_locks_count, sizeof(struct RPyOpaque_ThreadLock)); -+ if (_ssl_locks == NULL) -+ return 0; -+ for (i=0; i<_ssl_locks_count; i++) { -+ if (RPyThreadLockInit(_ssl_locks + i) == 0) -+ return 0; -+ } -+ CRYPTO_set_locking_callback(_ssl_thread_locking_function); -+ CRYPTO_set_id_callback(_ssl_thread_id_function); -+ return 1; -+} -+""" -+ -+ -+eci = ExternalCompilationInfo( -+ separate_module_sources=[separate_module_source], -+ export_symbols=['_PyPy_SSL_SetupThreads'], -+) -+ -+_PyPy_SSL_SetupThreads = rffi.llexternal('_PyPy_SSL_SetupThreads', -+ [], rffi.INT, -+ compilation_info=eci) -+ -+def setup_ssl_threads(): -+ result = _PyPy_SSL_SetupThreads() -+ if rffi.cast(lltype.Signed, result) == 0: -+ raise MemoryError - diff --git a/dev-python/pypy-binpackage/files/1.9-ssl-threads-2-25cd11066d95.patch b/dev-python/pypy-binpackage/files/1.9-ssl-threads-2-25cd11066d95.patch deleted file mode 100644 index a1878f3..0000000 --- a/dev-python/pypy-binpackage/files/1.9-ssl-threads-2-25cd11066d95.patch +++ /dev/null @@ -1,22 +0,0 @@ -changeset: 55578:25cd11066d95 -tag: tip -user: Armin Rigo -date: Mon Jun 11 15:19:38 2012 +0200 -summary: Fix. - -diff -r e701bca5f3b9 -r 25cd11066d95 pypy/module/_ssl/thread_lock.py ---- a/pypy/module/_ssl/thread_lock.py Mon Jun 11 15:01:00 2012 +0200 -+++ b/pypy/module/_ssl/thread_lock.py Mon Jun 11 15:19:38 2012 +0200 -@@ -39,9 +39,9 @@ - return; - - if (mode & CRYPTO_LOCK) { -- RPyThreadAcquireLock(_ssl_locks[n], 1); -+ RPyThreadAcquireLock(_ssl_locks + n, 1); - } else { -- RPyThreadReleaseLock(_ssl_locks[n]); -+ RPyThreadReleaseLock(_ssl_locks + n); - } - } - - diff --git a/dev-python/pypy-binpackage/files/1.9-distutils-fix_handling_of_executables_and_flags.patch b/dev-python/pypy-binpackage/files/2.1-distutils-fix_handling_of_executables_and_flags.patch similarity index 79% rename from dev-python/pypy-binpackage/files/1.9-distutils-fix_handling_of_executables_and_flags.patch rename to dev-python/pypy-binpackage/files/2.1-distutils-fix_handling_of_executables_and_flags.patch index 4a35ea8..2a27e3a 100644 --- a/dev-python/pypy-binpackage/files/1.9-distutils-fix_handling_of_executables_and_flags.patch +++ b/dev-python/pypy-binpackage/files/2.1-distutils-fix_handling_of_executables_and_flags.patch @@ -1,78 +1,5 @@ ---- lib-python/2.7/distutils/ccompiler.py -+++ lib-python/2.7/distutils/ccompiler.py -@@ -27,10 +27,16 @@ - varies across Unices and is stored in Python's Makefile. - """ - if compiler.compiler_type == "unix": -- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \ -- _sysconfig.get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SO', 'AR', -- 'ARFLAGS') -+ cc = ' '.join(compiler.compiler) -+ cxx = ' '.join(compiler.compiler_cxx) -+ ldshared = ' '.join(compiler.linker_so) -+ ldcxxshared = ' '.join(compiler.linker_so_cxx) -+ ar = compiler.archiver[0] -+ -+ cflags = '' -+ cxxflags = '' -+ ccshared = '-fPIC' -+ ar_flags = compiler.archiver[1] - - if 'CC' in os.environ: - cc = os.environ['CC'] -@@ -38,19 +44,27 @@ - cxx = os.environ['CXX'] - if 'LDSHARED' in os.environ: - ldshared = os.environ['LDSHARED'] -+ if 'LDCXXSHARED' in os.environ: -+ ldcxxshared = os.environ['LDCXXSHARED'] - if 'CPP' in os.environ: - cpp = os.environ['CPP'] - else: - cpp = cc + " -E" # not always - if 'LDFLAGS' in os.environ: - ldshared = ldshared + ' ' + os.environ['LDFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS'] - if 'CFLAGS' in os.environ: -- cflags = opt + ' ' + os.environ['CFLAGS'] -+ cflags = os.environ['CFLAGS'] - ldshared = ldshared + ' ' + os.environ['CFLAGS'] -+ if 'CXXFLAGS' in os.environ: -+ cxxflags = os.environ['CXXFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS'] - if 'CPPFLAGS' in os.environ: - cpp = cpp + ' ' + os.environ['CPPFLAGS'] - cflags = cflags + ' ' + os.environ['CPPFLAGS'] -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] - if 'AR' in os.environ: - ar = os.environ['AR'] - if 'ARFLAGS' in os.environ: -@@ -59,17 +73,19 @@ - archiver = ar + ' ' + ar_flags - - cc_cmd = cc + ' ' + cflags -+ cxx_cmd = cxx + ' ' + cxxflags - compiler.set_executables( - preprocessor=cpp, - compiler=cc_cmd, - compiler_so=cc_cmd + ' ' + ccshared, -- compiler_cxx=cxx, -+ compiler_cxx=cxx_cmd, -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared, - linker_so=ldshared, - linker_exe=cc, -+ linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx, - archiver=archiver) - -- compiler.shared_lib_extension = so_ext -- - class CCompiler: - """Abstract base class to define the interface that must be implemented - by real compiler classes. Also has some utility methods used by +http://bugs.python.org/issue1222585 + --- lib-python/2.7/distutils/cygwinccompiler.py +++ lib-python/2.7/distutils/cygwinccompiler.py @@ -135,9 +135,13 @@ @@ -105,7 +32,7 @@ except DistutilsExecError, msg: raise CompileError, msg -@@ -325,10 +333,15 @@ +@@ -325,10 +338,15 @@ self.set_executables(compiler='gcc -mno-cygwin -O -Wall', compiler_so='gcc -mno-cygwin -mdll -O -Wall', compiler_cxx='g++ -mno-cygwin -O -Wall', @@ -155,23 +82,24 @@ --- lib-python/2.7/distutils/sysconfig_cpython.py +++ lib-python/2.7/distutils/sysconfig_cpython.py -@@ -149,9 +149,12 @@ +@@ -149,10 +149,12 @@ varies across Unices and is stored in Python's Makefile. """ if compiler.compiler_type == "unix": -- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext) = \ +- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \ - get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS', -- 'CCSHARED', 'LDSHARED', 'SO') -+ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext) = \ -+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', -+ 'LDCXXSHARED', 'SO') +- 'CCSHARED', 'LDSHARED', 'SO', 'AR', +- 'ARFLAGS') ++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \ ++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED', ++ 'SO', 'AR', 'ARFLAGS') + + cflags = '' + cxxflags = '' + newcc = None if 'CC' in os.environ: - cc = os.environ['CC'] -@@ -159,28 +162,40 @@ +@@ -190,19 +192,27 @@ cxx = os.environ['CXX'] if 'LDSHARED' in os.environ: ldshared = os.environ['LDSHARED'] @@ -197,6 +125,11 @@ + cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS'] ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] + ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS'] + if 'AR' in os.environ: + ar = os.environ['AR'] + if 'ARFLAGS' in os.environ: +@@ -211,13 +221,17 @@ + archiver = ar + ' ' + ar_flags cc_cmd = cc + ' ' + cflags + cxx_cmd = cxx + ' ' + cxxflags @@ -208,14 +141,13 @@ + compiler_cxx=cxx_cmd, + compiler_so_cxx=cxx_cmd + ' ' + ccshared, linker_so=ldshared, -- linker_exe=cc) -+ linker_exe=cc, + linker_exe=cc, + linker_so_cxx=ldcxxshared, -+ linker_exe_cxx=cxx) ++ linker_exe_cxx=cxx, + archiver=archiver) compiler.shared_lib_extension = so_ext - -@@ -506,7 +521,7 @@ +@@ -529,7 +543,7 @@ for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', # a number of derived variables. These need to be # patched up as well. @@ -224,7 +156,7 @@ flags = _config_vars[key] flags = re.sub('-arch\s+\w+\s', ' ', flags) flags = re.sub('-isysroot [^ \t]*', ' ', flags) -@@ -525,7 +540,7 @@ +@@ -548,7 +562,7 @@ for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', # a number of derived variables. These need to be # patched up as well. @@ -233,7 +165,7 @@ flags = _config_vars[key] flags = re.sub('-arch\s+\w+\s', ' ', flags) -@@ -549,7 +564,7 @@ +@@ -572,7 +586,7 @@ for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED', # a number of derived variables. These need to be # patched up as well. @@ -244,11 +176,11 @@ flags = re.sub('-isysroot\s+\S+(\s|$)', ' ', flags) --- lib-python/2.7/distutils/sysconfig_pypy.py +++ lib-python/2.7/distutils/sysconfig_pypy.py -@@ -114,13 +114,56 @@ +@@ -123,7 +123,55 @@ optional C speedup components. """ if compiler.compiler_type == "unix": -- compiler.compiler_so.extend(['-fPIC', '-Wimplicit']) +- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit']) + cc = ' '.join(compiler.compiler) + cxx = ' '.join(compiler.compiler_cxx) + ldshared = ' '.join(compiler.linker_so) @@ -299,14 +231,8 @@ + linker_so_cxx=ldcxxshared, + linker_exe_cxx=cxx) compiler.shared_lib_extension = get_config_var('SO') -- if "CFLAGS" in os.environ: -- cflags = os.environ["CFLAGS"] -- compiler.compiler.append(cflags) -- compiler.compiler_so.append(cflags) -- compiler.linker_so.append(cflags) - - - from sysconfig_cpython import ( + if "CPPFLAGS" in os.environ: + cppflags = shlex.split(os.environ["CPPFLAGS"]) --- lib-python/2.7/distutils/unixccompiler.py +++ lib-python/2.7/distutils/unixccompiler.py @@ -114,14 +114,17 @@ @@ -335,7 +261,7 @@ } if sys.platform[:6] == "darwin": -@@ -186,11 +189,18 @@ +@@ -171,11 +174,18 @@ def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts): compiler_so = self.compiler_so @@ -356,7 +282,7 @@ except DistutilsExecError, msg: raise CompileError, msg -@@ -247,23 +257,16 @@ +@@ -232,23 +242,16 @@ ld_args.extend(extra_postargs) self.mkpath(os.path.dirname(output_filename)) try: diff --git a/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild b/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild index 0ceb9ec..0e390b0 100644 --- a/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild +++ b/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild @@ -16,7 +16,7 @@ HOMEPAGE="http://pypy.org/" SRC_URI="mirror://bitbucket/pypy/pypy/downloads/${MY_P}-src.tar.bz2" LICENSE="MIT" -SLOT=$(get_version_component_range 1-2 ${PV}) +SLOT=0 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" IUSE="bzip2 +jit ncurses sandbox shadowstack sse2" diff --git a/dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild b/dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild similarity index 59% rename from dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild rename to dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild index 252e9c1..a138e0c 100644 --- a/dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild +++ b/dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild @@ -1,24 +1,22 @@ -# Copyright 1999-2013 Gentoo Foundation +# Copyright 1999-2014 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/pypy-1.9-r2.ebuild,v 1.4 2013/02/17 22:45:18 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/pypy-2.2.1.ebuild,v 1.2 2014/03/12 09:14:21 mgorny Exp $ EAPI=5 -# pypy should be preferred, per upstream. -# that's the easiest way of forcing it. -PYTHON_COMPAT=( pypy{1_8,1_9,2_0} ) -inherit check-reqs eutils multilib multiprocessing python-any-r1 toolchain-funcs vcs-snapshot versionator - +PYTHON_COMPAT=( python2_7 pypy2_0 ) +inherit check-reqs eutils multilib multiprocessing pax-utils \ + python-any-r1 toolchain-funcs versionator MY_P=pypy-${PV} DESCRIPTION="A fast, compliant alternative implementation of the Python language" HOMEPAGE="http://pypy.org/" -SRC_URI="https://bitbucket.org/pypy/pypy/get/release-${PV}.tar.bz2 -> ${MY_P}.tar.bz2" +SRC_URI="mirror://bitbucket/pypy/pypy/downloads/${MY_P}-src.tar.bz2" LICENSE="MIT" -SLOT=$(get_version_component_range 1-2 ${PV}) +SLOT="0/$(get_version_component_range 1-2 ${PV})" KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="bzip2 +jit ncurses sandbox shadowstack sse2" +IUSE="bzip2 +jit ncurses sandbox shadowstack sqlite sse2" DEPEND=">=sys-libs/zlib-1.1.3 virtual/libffi @@ -30,19 +28,14 @@ DEPEND=">=sys-libs/zlib-1.1.3 app-arch/xz-utils ${PYTHON_DEPS}" -S=${WORKDIR}/pypy-${PV} +S="${WORKDIR}/${MY_P}-src" pkg_pretend() { - if [[ ! ${PYPY_BINPKG_STORE} ]]; then - eerror "Please set PYPY_BINPKG_STORE to the location where built" - eerror "packages are to be stored." - - die "Set PYPY_BINPKG_STORE." - fi - CHECKREQS_MEMORY="2G" use amd64 && CHECKREQS_MEMORY="4G" check-reqs_pkg_pretend + + [[ ${PYPY_BINPKG_STORE} ]] || die 'PYPY_BINPKG_STORE unset, wtf?!' } pkg_setup() { @@ -73,22 +66,9 @@ pkg_setup() { } src_prepare() { - epatch "${FILESDIR}/${PV}-no-bytecode-4151f9c406b6.patch" - epatch "${FILESDIR}/${PV}-scripts-location.patch" - epatch "${FILESDIR}/${PV}-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" - epatch "${FILESDIR}/${PV}-distutils-fix_handling_of_executables_and_flags.patch" - epatch "${FILESDIR}/${PV}-ssl-threads-1-34b3b5aac082.patch" - epatch "${FILESDIR}/${PV}-ssl-threads-2-25cd11066d95.patch" - epatch "${FILESDIR}/${PV}-get_python_lib_standard_lib-04ea518e5b71.patch" - epatch "${FILESDIR}/${PV}-more-ignored-ops-a9a8faa76bca.patch" - epatch "${FILESDIR}/${PV}-more-ignored-ops-146ddf82a279.patch" - epatch "${FILESDIR}/${PV}-pybuffer-release-double-decref-4ec2a5b49386.patch" - epatch "${FILESDIR}/${PV}-signal-a33052b17f4e.patch" - epatch "${FILESDIR}/${PV}-getargs-freelist-c26dc70ee340.patch" - epatch "${FILESDIR}/${PV}-ssl-errors-25d3418150d2.patch" - - # The following is Gentoo-specific. - epatch "${FILESDIR}/${PV}-no-static-hack.patch" + epatch "${FILESDIR}/1.9-scripts-location.patch" + epatch "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" + epatch "${FILESDIR}/2.1-distutils-fix_handling_of_executables_and_flags.patch" epatch_user } @@ -124,7 +104,7 @@ src_compile() { ${jit_backend} --make-jobs=$(makeopts_jobs) - ./pypy/translator/goal/targetpypystandalone.py + pypy/goal/targetpypystandalone ) # Avoid linking against libraries disabled by use flags @@ -143,7 +123,7 @@ src_compile() { ) done - set -- "${PYTHON}" ./pypy/translator/goal/translate.py --batch "${args[@]}" + set -- "${PYTHON}" rpython/bin/rpython --batch "${args[@]}" echo -e "\033[1m${@}\033[0m" "${@}" || die "compile error" } @@ -166,7 +146,7 @@ src_install() { chmod +x "${BIN_P}${suffix}"/pypy-c || die tar -cf "${BIN_P}${suffix}.tar" "${BIN_P}${suffix}" || die - xz -vz9 "${BIN_P}${suffix}.tar" || die + xz -vz9e "${BIN_P}${suffix}.tar" || die } # Yup, very hacky.