public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/mgorny:master commit in: dev-python/pypy-binpackage/, dev-python/pypy-binpackage/files/
@ 2014-03-30 13:19 Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2014-03-30 13:19 UTC (permalink / raw
  To: gentoo-commits

commit:     7fc1541612e9a21f739f89d0ecab9d03e76bc728
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 30 13:19:26 2014 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> 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 <arigo@tunes.org>
-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 <arigo@tunes.org>
-# 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 <arigo@tunes.org>
-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 <arigo@tunes.org>
-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 <arigo@tunes.org>
-# 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 <heroxbd@gentoo.org>.
-
---- 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 <arigo@tunes.org>
-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 <arigo@tunes.org>
-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 <amauryfa@gmail.com>
-# 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 <arigo@tunes.org>
-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 <openssl/crypto.h>
-+
-+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 <arigo@tunes.org>
-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.


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] dev/mgorny:master commit in: dev-python/pypy-binpackage/, dev-python/pypy-binpackage/files/
@ 2014-06-30  8:46 Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2014-06-30  8:46 UTC (permalink / raw
  To: gentoo-commits

commit:     7e36c68a53910f208788c822a1d12fa12582669f
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 30 08:30:59 2014 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Jun 30 08:30:59 2014 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=7e36c68a

dev-python/pypy-binpackage: bump.

---
 dev-python/pypy-binpackage/Manifest                |   2 +-
 .../files/2.3-21_all_distutils_c++.patch           | 321 +++++++++++++++++++++
 ...e-2.0.2.ebuild => pypy-binpackage-2.3.1.ebuild} |  40 ++-
 3 files changed, 339 insertions(+), 24 deletions(-)

diff --git a/dev-python/pypy-binpackage/Manifest b/dev-python/pypy-binpackage/Manifest
index 876272d..4bea985 100644
--- a/dev-python/pypy-binpackage/Manifest
+++ b/dev-python/pypy-binpackage/Manifest
@@ -1,2 +1,2 @@
-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
+DIST pypy-2.3.1-src.tar.bz2 15225332 SHA256 3fd10d97c0177c33ed358a78eb26f5bf1f91b266af853564b1a9d8c310a1e439 SHA512 86aab86c5f413cdd6a56680915605de5c1416255b43a8dce1b4dcf8f1febdb3275076a4a9c7de30002387d59e4171a52da2528436eb205d8d947de7edd049c65 WHIRLPOOL c78d41240f1803d9461f797fd0ef647a40a6990a4e3a504e80a0eaaf460d052bb60fe6240cacdb3ee8737500c9c7f418b1d55c619d01ac7b73aace3d82157aa6

diff --git a/dev-python/pypy-binpackage/files/2.3-21_all_distutils_c++.patch b/dev-python/pypy-binpackage/files/2.3-21_all_distutils_c++.patch
new file mode 100644
index 0000000..2787360
--- /dev/null
+++ b/dev-python/pypy-binpackage/files/2.3-21_all_distutils_c++.patch
@@ -0,0 +1,321 @@
+http://bugs.python.org/issue1222585
+
+--- Lib/distutils/cygwinccompiler.py
++++ Lib/distutils/cygwinccompiler.py
+@@ -117,8 +117,10 @@
+         # dllwrap 2.10.90 is buggy
+         if self.ld_version >= "2.10.90":
+             self.linker_dll = "gcc"
++            self.linker_dll_cxx = "g++"
+         else:
+             self.linker_dll = "dllwrap"
++            self.linker_dll_cxx = "dllwrap"
+ 
+         # ld_version >= "2.13" support -shared so use it instead of
+         # -mdll -static
+@@ -132,9 +134,13 @@
+         self.set_executables(compiler='gcc -mcygwin -O -Wall',
+                              compiler_so='gcc -mcygwin -mdll -O -Wall',
+                              compiler_cxx='g++ -mcygwin -O -Wall',
++                             compiler_so_cxx='g++ -mcygwin -mdll -O -Wall',
+                              linker_exe='gcc -mcygwin',
+                              linker_so=('%s -mcygwin %s' %
+-                                        (self.linker_dll, shared_option)))
++                                        (self.linker_dll, shared_option)),
++                             linker_exe_cxx='g++ -mcygwin',
++                             linker_so_cxx=('%s -mcygwin %s' %
++                                            (self.linker_dll_cxx, shared_option)))
+ 
+         # cygwin and mingw32 need different sets of libraries
+         if self.gcc_version == "2.91.57":
+@@ -160,8 +166,12 @@
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+@@ -327,9 +337,14 @@
+         self.set_executables(compiler='gcc%s -O -Wall' % no_cygwin,
+                              compiler_so='gcc%s -mdll -O -Wall' % no_cygwin,
+                              compiler_cxx='g++%s -O -Wall' % no_cygwin,
++                             compiler_so_cxx='g++%s -mdll -O -Wall' % no_cygwin,
+                              linker_exe='gcc%s' % no_cygwin,
+                              linker_so='%s%s %s %s'
+                                     % (self.linker_dll, no_cygwin,
++                                       shared_option, entry_point),
++                             linker_exe_cxx='g++%s' % no_cygwin,
++                             linker_so_cxx='%s%s %s %s'
++                                    % (self.linker_dll_cxx, no_cygwin,
+                                        shared_option, entry_point))
+         # Maybe we should also append -mthreads, but then the finished
+         # dlls need another dll (mingwm10.dll see Mingw32 docs)
+--- Lib/distutils/emxccompiler.py
++++ Lib/distutils/emxccompiler.py
+@@ -65,8 +65,12 @@
+         # XXX optimization, warnings etc. should be customizable.
+         self.set_executables(compiler='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              compiler_so='gcc -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
++                             compiler_so_cxx='g++ -Zomf -Zmt -O3 -fomit-frame-pointer -mprobe -Wall',
+                              linker_exe='gcc -Zomf -Zmt -Zcrtdll',
+-                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll')
++                             linker_so='gcc -Zomf -Zmt -Zcrtdll -Zdll',
++                             linker_exe_cxx='g++ -Zomf -Zmt -Zcrtdll',
++                             linker_so_cxx='g++ -Zomf -Zmt -Zcrtdll -Zdll')
+ 
+         # want the gcc library statically linked (so that we don't have
+         # to distribute a version dependent on the compiler we have)
+@@ -83,8 +87,12 @@
+                 raise CompileError, msg
+         else: # for other files use the C-compiler
+             try:
+-                self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
+-                           extra_postargs)
++                if self.detect_language(src) == 'c++':
++                    self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] +
++                               extra_postargs)
++                else:
++                    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] +
++                               extra_postargs)
+             except DistutilsExecError, msg:
+                 raise CompileError, msg
+ 
+--- Lib/distutils/sysconfig_cpython.py
++++ Lib/distutils/sysconfig_cpython.py
+@@ -170,10 +170,12 @@
+                 _osx_support.customize_compiler(_config_vars)
+                 _config_vars['CUSTOMIZED_OSX_COMPILER'] = 'True'
+ 
+-        (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
+-            get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
+-                            '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 = ''
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+@@ -188,19 +190,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:
+@@ -209,13 +219,17 @@
+             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
+--- Lib/distutils/unixccompiler.py
++++ Lib/distutils/unixccompiler.py
+@@ -55,14 +55,17 @@
+     # are pretty generic; they will probably have to be set by an outsider
+     # (eg. using information discovered by the sysconfig about building
+     # Python extensions).
+-    executables = {'preprocessor' : None,
+-                   'compiler'     : ["cc"],
+-                   'compiler_so'  : ["cc"],
+-                   'compiler_cxx' : ["cc"],
+-                   'linker_so'    : ["cc", "-shared"],
+-                   'linker_exe'   : ["cc"],
+-                   'archiver'     : ["ar", "-cr"],
+-                   'ranlib'       : None,
++    executables = {'preprocessor'    : None,
++                   'compiler'        : ["cc"],
++                   'compiler_so'     : ["cc"],
++                   'compiler_cxx'    : ["c++"],
++                   'compiler_so_cxx' : ["c++"],
++                   'linker_so'       : ["cc", "-shared"],
++                   'linker_exe'      : ["cc"],
++                   'linker_so_cxx'   : ["c++", "-shared"],
++                   'linker_exe_cxx'  : ["c++"],
++                   'archiver'        : ["ar", "-cr"],
++                   'ranlib'          : None,
+                   }
+ 
+     if sys.platform[:6] == "darwin":
+@@ -112,12 +115,19 @@
+ 
+     def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
+         compiler_so = self.compiler_so
++        compiler_so_cxx = self.compiler_so_cxx
+         if sys.platform == 'darwin':
+             compiler_so = _osx_support.compiler_fixup(compiler_so,
+                                                     cc_args + extra_postargs)
++            compiler_so_cxx = _osx_support.compiler_fixup(compiler_so_cxx,
++                                                    cc_args + extra_postargs)
+         try:
+-            self.spawn(compiler_so + cc_args + [src, '-o', obj] +
+-                       extra_postargs)
++            if self.detect_language(src) == 'c++':
++                self.spawn(compiler_so_cxx + cc_args + [src, '-o', obj] +
++                           extra_postargs)
++            else:
++                self.spawn(compiler_so + cc_args + [src, '-o', obj] +
++                           extra_postargs)
+         except DistutilsExecError, msg:
+             raise CompileError, msg
+ 
+@@ -174,23 +184,16 @@
+                 ld_args.extend(extra_postargs)
+             self.mkpath(os.path.dirname(output_filename))
+             try:
+-                if target_desc == CCompiler.EXECUTABLE:
+-                    linker = self.linker_exe[:]
++                if target_lang == "c++":
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe_cxx[:]
++                    else:
++                        linker = self.linker_so_cxx[:]
+                 else:
+-                    linker = self.linker_so[:]
+-                if target_lang == "c++" and self.compiler_cxx:
+-                    # skip over environment variable settings if /usr/bin/env
+-                    # is used to set up the linker's environment.
+-                    # This is needed on OSX. Note: this assumes that the
+-                    # normal and C++ compiler have the same environment
+-                    # settings.
+-                    i = 0
+-                    if os.path.basename(linker[0]) == "env":
+-                        i = 1
+-                        while '=' in linker[i]:
+-                            i = i + 1
+-
+-                    linker[i] = self.compiler_cxx[i]
++                    if target_desc == CCompiler.EXECUTABLE:
++                        linker = self.linker_exe[:]
++                    else:
++                        linker = self.linker_so[:]
+ 
+                 if sys.platform == 'darwin':
+                     linker = _osx_support.compiler_fixup(linker, ld_args)
+--- Lib/_osx_support.py
++++ Lib/_osx_support.py
+@@ -14,13 +14,13 @@
+ # configuration variables that may contain universal build flags,
+ # like "-arch" or "-isdkroot", that may need customization for
+ # the user environment
+-_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS', 'BASECFLAGS',
+-                            'BLDSHARED', 'LDSHARED', 'CC', 'CXX',
+-                            'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
+-                            'PY_CORE_CFLAGS')
++_UNIVERSAL_CONFIG_VARS = ('CFLAGS', 'CXXFLAGS', 'LDFLAGS', 'CPPFLAGS',
++                          'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'LDCXXSHARED',
++                          'CC', 'CXX', 'PY_CFLAGS', 'PY_LDFLAGS',
++                          'PY_CPPFLAGS', 'PY_CORE_CFLAGS')
+ 
+ # configuration variables that may contain compiler calls
+-_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'CC', 'CXX')
++_COMPILER_CONFIG_VARS = ('BLDSHARED', 'LDSHARED', 'LDCXXSHARED', 'CC', 'CXX')
+ 
+ # prefix added to original configuration variable names
+ _INITPRE = '_OSX_SUPPORT_INITIAL_'
+--- a/distutils/sysconfig_pypy.py
++++ b/distutils/sysconfig_pypy.py
+@@ -123,7 +123,55 @@
+     optional C speedup components.
+     """
+     if compiler.compiler_type == "unix":
+-        compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
++        cc = ' '.join(compiler.compiler)
++        cxx = ' '.join(compiler.compiler_cxx)
++        ldshared = ' '.join(compiler.linker_so)
++        ldcxxshared = ' '.join(compiler.linker_so_cxx)
++
++        cflags = ''
++        cxxflags = ''
++        ccshared = '-fPIC'
++
++        if 'CC' in os.environ:
++            cc = os.environ['CC']
++        if 'CXX' in os.environ:
++            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 = 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']
++
++        cc_cmd = cc + ' ' + cflags
++        cxx_cmd = cxx + ' ' + cxxflags
++        compiler.set_executables(
++            preprocessor=cpp,
++            compiler=cc_cmd,
++            compiler_so=cc_cmd + ' ' + ccshared,
++            compiler_cxx=cxx_cmd,
++            compiler_so_cxx=cxx_cmd + ' ' + ccshared,
++            linker_so=ldshared,
++            linker_exe=cc,
++            linker_so_cxx=ldcxxshared,
++            linker_exe_cxx=cxx)
+         compiler.shared_lib_extension = get_config_var('SO')
+         if "CPPFLAGS" in os.environ:
+             cppflags = shlex.split(os.environ["CPPFLAGS"])

diff --git a/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild b/dev-python/pypy-binpackage/pypy-binpackage-2.3.1.ebuild
similarity index 75%
rename from dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild
rename to dev-python/pypy-binpackage/pypy-binpackage-2.3.1.ebuild
index 0e390b0..833c324 100644
--- a/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild
+++ b/dev-python/pypy-binpackage/pypy-binpackage-2.3.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-2.0.2.ebuild,v 1.3 2013/06/18 10:41:29 idella4 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 flag-o-matic multilib multiprocessing pax-utils python-any-r1 toolchain-funcs 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="mirror://bitbucket/pypy/pypy/downloads/${MY_P}-src.tar.bz2"
+SRC_URI="https://bitbucket.org/${PN}/${PN}/get/release-${PV}.tar.bz2 -> ${MY_P}-src.tar.bz2"
 
 LICENSE="MIT"
-SLOT=0
+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
@@ -33,19 +31,11 @@ DEPEND=">=sys-libs/zlib-1.1.3
 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
-#	if [[ ${MERGE_TYPE} != binary && "$(gcc-version)" == "4.8" ]]; then
-#		die "PyPy does not build correctly with GCC 4.8"
-#	fi
+
+	[[ ${PYPY_BINPKG_STORE} ]] || die 'PYPY_BINPKG_STORE unset, wtf?!'
 }
 
 pkg_setup() {
@@ -78,7 +68,10 @@ pkg_setup() {
 src_prepare() {
 	epatch "${FILESDIR}/1.9-scripts-location.patch"
 	epatch "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
-	epatch "${FILESDIR}/2.0.2-distutils-fix_handling_of_executables_and_flags.patch"
+
+	pushd lib-python/2.7 > /dev/null || die
+	epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
+	popd > /dev/null || die
 
 	epatch_user
 }
@@ -107,6 +100,7 @@ src_compile() {
 	fi
 
 	local args=(
+		--shared
 		$(usex jit -Ojit -O2)
 		$(usex shadowstack --gcrootfinder=shadowstack '')
 		$(usex sandbox --sandbox '')
@@ -151,12 +145,12 @@ src_install() {
 
 	einfo "Zipping PyPy ..."
 	mkdir "${BIN_P}${suffix}"{,/include} || die
-	mv pypy-c "${BIN_P}${suffix}"/ || die
+	mv pypy-c libpypy-c.so "${BIN_P}${suffix}"/ || die
 	mv include/pypy_* "${BIN_P}${suffix}"/include/ || die
 	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.


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [gentoo-commits] dev/mgorny:master commit in: dev-python/pypy-binpackage/, dev-python/pypy-binpackage/files/
@ 2014-11-05 22:20 Michał Górny
  0 siblings, 0 replies; 3+ messages in thread
From: Michał Górny @ 2014-11-05 22:20 UTC (permalink / raw
  To: gentoo-commits

commit:     611b64c24de9a5825b457228d426cab8dd4de9c6
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  5 22:01:27 2014 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov  5 22:01:27 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=611b64c2

dev-python/pypy-binpackage: Update to match current dev-python/pypy code.

Package-Manager: portage-2.2.14

---
 .../pypy-binpackage/files/2.3.1-shared-lib.patch   | 11 ++++
 dev-python/pypy-binpackage/metadata.xml            |  1 +
 ....3.1.ebuild => pypy-binpackage-2.3.1-r1.ebuild} | 63 +++++++++++++++++++---
 3 files changed, 68 insertions(+), 7 deletions(-)

diff --git a/dev-python/pypy-binpackage/files/2.3.1-shared-lib.patch b/dev-python/pypy-binpackage/files/2.3.1-shared-lib.patch
new file mode 100644
index 0000000..ae1139f
--- /dev/null
+++ b/dev-python/pypy-binpackage/files/2.3.1-shared-lib.patch
@@ -0,0 +1,11 @@
+--- rpython/translator/platform/posix.py
++++ rpython/translator/platform/posix.py
+@@ -180,7 +180,7 @@
+                    'int main(int argc, char* argv[]) '
+                    '{ return $(PYPY_MAIN_FUNCTION)(argc, argv); }" > $@')
+             m.rule('$(DEFAULT_TARGET)', ['$(TARGET)', 'main.o'],
+-                   '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) -o $@')
++                   '$(CC_LINK) $(LDFLAGS_LINK) main.o -L. -l$(SHARED_IMPORT_LIB) \'-Wl,-rpath,$$ORIGIN\' -o $@')
+ 
+         return m
+ 

diff --git a/dev-python/pypy-binpackage/metadata.xml b/dev-python/pypy-binpackage/metadata.xml
index 6fb4588..675ce03 100644
--- a/dev-python/pypy-binpackage/metadata.xml
+++ b/dev-python/pypy-binpackage/metadata.xml
@@ -7,6 +7,7 @@
 		<name>Michał Górny</name>
 	</maintainer>
 	<use>
+		<flag name="low-memory">Build using PyPy with the engine configured towards low memory footprint. This makes it possible to build PyPy using ~3.5G of RAM on amd64 and ~half of that on x86, at the cost of lengthened build time. Please note that you will need an extra ~1G of extra RAM or swap since the translation memory (unused at the time) is not freed when the C compiler is spawned.</flag>
 		<flag name="sandbox">Enable sandboxing functionality</flag>
 		<flag name="shadowstack">Use a shadow stack for finding GC roots</flag>
 	</use>

diff --git a/dev-python/pypy-binpackage/pypy-binpackage-2.3.1.ebuild b/dev-python/pypy-binpackage/pypy-binpackage-2.3.1-r1.ebuild
similarity index 65%
rename from dev-python/pypy-binpackage/pypy-binpackage-2.3.1.ebuild
rename to dev-python/pypy-binpackage/pypy-binpackage-2.3.1-r1.ebuild
index fb30bcf..e495b29 100644
--- a/dev-python/pypy-binpackage/pypy-binpackage-2.3.1.ebuild
+++ b/dev-python/pypy-binpackage/pypy-binpackage-2.3.1-r1.ebuild
@@ -16,7 +16,7 @@ SRC_URI="https://bitbucket.org/${PN}/${PN}/get/release-${PV}.tar.bz2 -> ${MY_P}-
 LICENSE="MIT"
 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 low-memory ncurses sandbox shadowstack sse2"
 
 DEPEND=">=sys-libs/zlib-1.1.3
 	virtual/libffi
@@ -31,16 +31,55 @@ DEPEND=">=sys-libs/zlib-1.1.3
 S="${WORKDIR}/${MY_P}-src"
 
 pkg_pretend() {
-	CHECKREQS_MEMORY="2G"
-	use amd64 && CHECKREQS_MEMORY="4G"
+	if use low-memory; then
+		if ! has_version dev-python/pypy && ! has_version dev-python/pypy-bin
+		then
+			eerror "USE=low-memory requires a (possibly old) version of dev-python/pypy"
+			eerror "or dev-python/pypy-bin being installed. Please install it using e.g.:"
+			eerror
+			eerror "  $ emerge -1v dev-python/pypy-bin"
+			eerror
+			eerror "before attempting to build dev-python/pypy[low-memory]."
+			die "dev-python/pypy-bin (or dev-python/pypy) needs to be installed for USE=low-memory"
+		fi
+
+		CHECKREQS_MEMORY="1750M"
+		use amd64 && CHECKREQS_MEMORY="3500M"
+	else
+		CHECKREQS_MEMORY="3G"
+		use amd64 && CHECKREQS_MEMORY="6G"
+	fi
+
 	check-reqs_pkg_pretend
 
 	[[ ${PYPY_BINPKG_STORE} ]] || die 'PYPY_BINPKG_STORE unset, wtf?!'
 }
 
 pkg_setup() {
+	local force_pypy
+
 	pkg_pretend
-	python-any-r1_pkg_setup
+
+	if has_version dev-python/pypy || has_version dev-python/pypy-bin
+	then
+		if [[ ! ${EPYTHON} ]] || use low-memory; then
+			einfo "Using already-installed PyPy to perform the translation."
+			force_pypy=1
+		else
+			einfo "Using ${EPYTHON} to perform the translation. Please note that upstream"
+			einfo "recommends using PyPy for that. If you wish to do so, please unset"
+			einfo "the EPYTHON variable."
+		fi
+	fi
+
+	if [[ ${force_pypy} ]]; then
+		# set manually since python_setup needs virtual/pypy
+		# and we don't force the dep
+		python_export pypy EPYTHON PYTHON
+		python_wrapper_setup
+	else
+		python-any-r1_pkg_setup
+	fi
 
 	local cpu
 	if use amd64; then
@@ -66,8 +105,9 @@ pkg_setup() {
 }
 
 src_prepare() {
-	epatch "${FILESDIR}/1.9-scripts-location.patch"
-	epatch "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
+	epatch "${FILESDIR}/1.9-scripts-location.patch" \
+		"${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch" \
+		"${FILESDIR}"/2.3.1-shared-lib.patch	# 517002
 
 	pushd lib-python/2.7 > /dev/null || die
 	epatch "${FILESDIR}/2.3-21_all_distutils_c++.patch"
@@ -127,9 +167,18 @@ src_compile() {
 		)
 	done
 
-	set -- "${PYTHON}" rpython/bin/rpython --batch "${args[@]}"
+	local interp=( "${PYTHON}" )
+	if use low-memory; then
+		interp=( env PYPY_GC_MAX_DELTA=200MB
+			"${PYTHON}" --jit loop_longevity=300 )
+	fi
+
+	set -- "${interp[@]}" rpython/bin/rpython --batch "${args[@]}"
 	echo -e "\033[1m${@}\033[0m"
 	"${@}" || die "compile error"
+
+	use doc && emake -C pypy/doc/ html
+	pax-mark m "${ED%/}${INSDESTTREE}/pypy-c"
 }
 
 src_install() {


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-05 22:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-30  8:46 [gentoo-commits] dev/mgorny:master commit in: dev-python/pypy-binpackage/, dev-python/pypy-binpackage/files/ Michał Górny
  -- strict thread matches above, loose matches on Subject: below --
2014-11-05 22:20 Michał Górny
2014-03-30 13:19 Michał Górny

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox