Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/mgorny:master commit in: dev-python/pypy-binpackage/, dev-python/pypy-binpackage/files/
Date: Sun, 30 Mar 2014 13:19:49
Message-Id: 1396185566.7fc1541612e9a21f739f89d0ecab9d03e76bc728.mgorny@gentoo
1 commit: 7fc1541612e9a21f739f89d0ecab9d03e76bc728
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Sun Mar 30 13:19:26 2014 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Sun Mar 30 13:19:26 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/mgorny.git;a=commit;h=7fc15416
7
8 dev-python/pypy-binpackage: Update for 2.2.1.
9
10 Package-Manager: portage-2.2.10
11
12 ---
13 dev-python/pypy-binpackage/Manifest | 2 +-
14 ...-get_python_lib_standard_lib-04ea518e5b71.patch | 24 ---
15 .../files/1.9-getargs-freelist-c26dc70ee340.patch | 212 ---------------------
16 .../files/1.9-more-ignored-ops-146ddf82a279.patch | 25 ---
17 .../files/1.9-more-ignored-ops-a9a8faa76bca.patch | 32 ----
18 .../files/1.9-no-bytecode-4151f9c406b6.patch | 27 ---
19 .../pypy-binpackage/files/1.9-no-static-hack.patch | 30 ---
20 ...buffer-release-double-decref-4ec2a5b49386.patch | 29 ---
21 .../files/1.9-signal-a33052b17f4e.patch | 65 -------
22 .../files/1.9-ssl-errors-25d3418150d2.patch | 34 ----
23 .../files/1.9-ssl-threads-1-34b3b5aac082.patch | 143 --------------
24 .../files/1.9-ssl-threads-2-25cd11066d95.patch | 22 ---
25 ...ls-fix_handling_of_executables_and_flags.patch} | 132 +++----------
26 .../pypy-binpackage/pypy-binpackage-2.0.2.ebuild | 2 +-
27 ...-1.9-r2.ebuild => pypy-binpackage-2.2.1.ebuild} | 54 ++----
28 15 files changed, 48 insertions(+), 785 deletions(-)
29
30 diff --git a/dev-python/pypy-binpackage/Manifest b/dev-python/pypy-binpackage/Manifest
31 index 8c45eb7..876272d 100644
32 --- a/dev-python/pypy-binpackage/Manifest
33 +++ b/dev-python/pypy-binpackage/Manifest
34 @@ -1,2 +1,2 @@
35 -DIST pypy-1.9.tar.bz2 13466551 SHA256 9fd599acade49ef98017bbce4f179f19cf2680489ff15235d3bad5b20bde0d68 SHA512 1e02f1f1ac493be35272212f2be62db17a01a95c56ffbd8c00a043587e38131e779928fef1383c61575ecb48bf4dc407b62726d30d5b5728221a612fe67ec8c3 WHIRLPOOL 5b601f31f695623c2e5f6d48ae902e07c5cdccafe415ae89878e5cf71408b31fc44fb1c173a93e66d81188503651000de219533e69071495b87d80a8d217274f
36 DIST pypy-2.0.2-src.tar.bz2 14819848 SHA256 1991c90d6b98e2408b3790d4b57b71ec1c69346328b8321505ce8f6ab4544c3c SHA512 5b8b56194dff468dd249dea0014fadafb791eb69858ffae0b9c7638f087df277a84ddadc7d5b0fdb48a12ca8e6b70eb95cb5b7a5f56fe8fe3396820b814ecfd7 WHIRLPOOL bb1f71e0b2d3e145edcb1baa17b0a13c09f5229cf1b0532edbb3d0d5c87ef39543c0ef6b9dc7ce2778c4a3336d4a1580fce9cf960f82b72ddfed02e06d10d8af
37 +DIST pypy-2.2.1-src.tar.bz2 14439822 SHA256 252045187e443656a2beb412dadac9296e8fe8db0f75a66ed5265db58c35035f SHA512 68b52c5b1a9b96593aa1dd38ad0b1b7b282852008e3ae3c488a5e19ab2bede68e2b40afdb79d85a4ab21cb1da6647b8b958fcefe34c99a1f6cbc1a19d695d3b6 WHIRLPOOL 6eca63959d8ee5663f868daaaac32ad1180b07e2f8b63d839652902095a098ffbfa29c6f83451733270a4b2f73b65450cb3b80a878b9dd1ec71089bfff11e9f6
38
39 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
40 deleted file mode 100644
41 index e6c98a5..0000000
42 --- a/dev-python/pypy-binpackage/files/1.9-get_python_lib_standard_lib-04ea518e5b71.patch
43 +++ /dev/null
44 @@ -1,24 +0,0 @@
45 -changeset: 55566:04ea518e5b71
46 -parent: 55554:fa1ecb3a52df
47 -user: Armin Rigo <arigo@×××××.org>
48 -date: Mon Jun 11 10:28:26 2012 +0200
49 -summary: issue1164: get_python_lib(standard_lib=1) should probably just
50 -
51 -diff -r fa1ecb3a52df -r 04ea518e5b71 lib-python/2.7/distutils/sysconfig_pypy.py
52 ---- a/lib-python/2.7/distutils/sysconfig_pypy.py Sun Jun 10 23:49:16 2012 +0300
53 -+++ b/lib-python/2.7/distutils/sysconfig_pypy.py Mon Jun 11 10:28:26 2012 +0200
54 -@@ -39,11 +39,10 @@
55 - If 'prefix' is supplied, use it instead of sys.prefix or
56 - sys.exec_prefix -- i.e., ignore 'plat_specific'.
57 - """
58 -- if standard_lib:
59 -- raise DistutilsPlatformError(
60 -- "calls to get_python_lib(standard_lib=1) cannot succeed")
61 - if prefix is None:
62 - prefix = PREFIX
63 -+ if standard_lib:
64 -+ return os.path.join(prefix, "lib-python", get_python_version())
65 - return os.path.join(prefix, 'site-packages')
66 -
67 -
68 -
69
70 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
71 deleted file mode 100644
72 index 70619dc..0000000
73 --- a/dev-python/pypy-binpackage/files/1.9-getargs-freelist-c26dc70ee340.patch
74 +++ /dev/null
75 @@ -1,212 +0,0 @@
76 -# HG changeset patch
77 -# User Armin Rigo <arigo@×××××.org>
78 -# Date 1339595299 -7200
79 -# Node ID c26dc70ee34018efeec8b789d40ec78478304bc0
80 -# Parent c7dff5469611f03946466caed17c567c4ea5d8d0
81 -Fix for the issue of abuse of PyCapsules, relying on immediate
82 -destruction, as CPython does. This problem was first described in
83 -https://bazaar.launchpad.net/~exarkun/pyopenssl/trunk/revision/166.
84 -The fix is rather obvious and consist in a *negative* total amount
85 -of lines :-/
86 -
87 -diff -r c7dff5469611f03946466caed17c567c4ea5d8d0 -r c26dc70ee34018efeec8b789d40ec78478304bc0 pypy/module/cpyext/src/getargs.c
88 ---- a/pypy/module/cpyext/src/getargs.c Wed Jun 13 13:19:05 2012 +0200
89 -+++ b/pypy/module/cpyext/src/getargs.c Wed Jun 13 15:48:19 2012 +0200
90 -@@ -24,14 +24,15 @@
91 -
92 -
93 - /* Forward */
94 -+typedef struct freelist_s freelist_t;
95 - static int vgetargs1(PyObject *, const char *, va_list *, int);
96 - static void seterror(int, const char *, int *, const char *, const char *);
97 - static char *convertitem(PyObject *, const char **, va_list *, int, int *,
98 -- char *, size_t, PyObject **);
99 -+ char *, size_t, freelist_t **);
100 - static char *converttuple(PyObject *, const char **, va_list *, int,
101 -- int *, char *, size_t, int, PyObject **);
102 -+ int *, char *, size_t, int, freelist_t **);
103 - static char *convertsimple(PyObject *, const char **, va_list *, int, char *,
104 -- size_t, PyObject **);
105 -+ size_t, freelist_t **);
106 - static Py_ssize_t convertbuffer(PyObject *, void **p, char **);
107 - static int getbuffer(PyObject *, Py_buffer *, char**);
108 -
109 -@@ -128,72 +129,45 @@
110 -
111 - /* Handle cleanup of allocated memory in case of exception */
112 -
113 --#define GETARGS_CAPSULE_NAME_CLEANUP_PTR "getargs.cleanup_ptr"
114 --#define GETARGS_CAPSULE_NAME_CLEANUP_BUFFER "getargs.cleanup_buffer"
115 -+typedef void (*cleanup_fn)(void *);
116 -
117 --static void
118 --cleanup_ptr(PyObject *self)
119 --{
120 -- void *ptr = PyCapsule_GetPointer(self, GETARGS_CAPSULE_NAME_CLEANUP_PTR);
121 -- if (ptr) {
122 -- PyMem_FREE(ptr);
123 -- }
124 --}
125 -+struct freelist_s {
126 -+ void *ptr;
127 -+ cleanup_fn destr;
128 -+ struct freelist_s *next;
129 -+};
130 -
131 --static void
132 --cleanup_buffer(PyObject *self)
133 --{
134 -- Py_buffer *ptr = (Py_buffer *)PyCapsule_GetPointer(self, GETARGS_CAPSULE_NAME_CLEANUP_BUFFER);
135 -- if (ptr) {
136 -- PyBuffer_Release(ptr);
137 -- }
138 --}
139 -+#define cleanup_ptr ((cleanup_fn)PyMem_FREE)
140 -+#define cleanup_buffer ((cleanup_fn)PyBuffer_Release)
141 -
142 - static int
143 --addcleanup(void *ptr, PyObject **freelist, PyCapsule_Destructor destr)
144 -+addcleanup(void *ptr, freelist_t **freelist, cleanup_fn destr)
145 - {
146 -- PyObject *cobj;
147 -- const char *name;
148 --
149 -- if (!*freelist) {
150 -- *freelist = PyList_New(0);
151 -- if (!*freelist) {
152 -- destr(ptr);
153 -- return -1;
154 -- }
155 -- }
156 --
157 -- if (destr == cleanup_ptr) {
158 -- name = GETARGS_CAPSULE_NAME_CLEANUP_PTR;
159 -- } else if (destr == cleanup_buffer) {
160 -- name = GETARGS_CAPSULE_NAME_CLEANUP_BUFFER;
161 -- } else {
162 -- return -1;
163 -- }
164 -- cobj = PyCapsule_New(ptr, name, destr);
165 -- if (!cobj) {
166 -+ freelist_t *node = PyMem_MALLOC(sizeof(freelist_t));
167 -+ if (!node) {
168 - destr(ptr);
169 - return -1;
170 - }
171 -- if (PyList_Append(*freelist, cobj)) {
172 -- Py_DECREF(cobj);
173 -- return -1;
174 -- }
175 -- Py_DECREF(cobj);
176 -+ node->ptr = ptr;
177 -+ node->destr = destr;
178 -+ node->next = *freelist;
179 -+ *freelist = node;
180 - return 0;
181 - }
182 -
183 - static int
184 --cleanreturn(int retval, PyObject *freelist)
185 -+cleanreturn(int retval, freelist_t *freelist)
186 - {
187 -- if (freelist && retval != 0) {
188 -- /* We were successful, reset the destructors so that they
189 -- don't get called. */
190 -- Py_ssize_t len = PyList_GET_SIZE(freelist), i;
191 -- for (i = 0; i < len; i++)
192 -- PyCapsule_SetDestructor(PyList_GET_ITEM(freelist, i), NULL);
193 -+ freelist_t *next;
194 -+ while (freelist != NULL) {
195 -+ if (retval == 0) {
196 -+ /* Leaving with an error */
197 -+ freelist->destr(freelist->ptr);
198 -+ }
199 -+ next = freelist->next;
200 -+ PyMem_FREE(freelist);
201 -+ freelist = next;
202 - }
203 -- Py_XDECREF(freelist);
204 - return retval;
205 - }
206 -
207 -@@ -212,7 +186,7 @@
208 - const char *formatsave = format;
209 - Py_ssize_t i, len;
210 - char *msg;
211 -- PyObject *freelist = NULL;
212 -+ freelist_t *freelist = NULL;
213 - int compat = flags & FLAG_COMPAT;
214 -
215 - assert(compat || (args != (PyObject*)NULL));
216 -@@ -412,7 +386,7 @@
217 - static char *
218 - converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
219 - int *levels, char *msgbuf, size_t bufsize, int toplevel,
220 -- PyObject **freelist)
221 -+ freelist_t **freelist)
222 - {
223 - int level = 0;
224 - int n = 0;
225 -@@ -488,7 +462,7 @@
226 -
227 - static char *
228 - convertitem(PyObject *arg, const char **p_format, va_list *p_va, int flags,
229 -- int *levels, char *msgbuf, size_t bufsize, PyObject **freelist)
230 -+ int *levels, char *msgbuf, size_t bufsize, freelist_t **freelist)
231 - {
232 - char *msg;
233 - const char *format = *p_format;
234 -@@ -569,7 +543,7 @@
235 -
236 - static char *
237 - convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
238 -- char *msgbuf, size_t bufsize, PyObject **freelist)
239 -+ char *msgbuf, size_t bufsize, freelist_t **freelist)
240 - {
241 - /* For # codes */
242 - #define FETCH_SIZE int *q=NULL;Py_ssize_t *q2=NULL;\
243 -@@ -1534,7 +1508,8 @@
244 - const char *fname, *msg, *custom_msg, *keyword;
245 - int min = INT_MAX;
246 - int i, len, nargs, nkeywords;
247 -- PyObject *freelist = NULL, *current_arg;
248 -+ freelist_t *freelist = NULL;
249 -+ PyObject *current_arg;
250 -
251 - assert(args != NULL && PyTuple_Check(args));
252 - assert(keywords == NULL || PyDict_Check(keywords));
253 -diff -r c7dff5469611f03946466caed17c567c4ea5d8d0 -r c26dc70ee34018efeec8b789d40ec78478304bc0 pypy/module/cpyext/test/test_getargs.py
254 ---- a/pypy/module/cpyext/test/test_getargs.py Wed Jun 13 13:19:05 2012 +0200
255 -+++ b/pypy/module/cpyext/test/test_getargs.py Wed Jun 13 15:48:19 2012 +0200
256 -@@ -144,6 +144,31 @@
257 - assert 'foo\0bar\0baz' == pybuffer(buffer('foo\0bar\0baz'))
258 -
259 -
260 -+ def test_pyarg_parse_string_fails(self):
261 -+ """
262 -+ Test the failing case of PyArg_ParseTuple(): it must not keep
263 -+ a reference on the PyObject passed in.
264 -+ """
265 -+ pybuffer = self.import_parser(
266 -+ '''
267 -+ Py_buffer buf1, buf2, buf3;
268 -+ PyObject *result;
269 -+ if (!PyArg_ParseTuple(args, "s*s*s*", &buf1, &buf2, &buf3)) {
270 -+ return NULL;
271 -+ }
272 -+ Py_FatalError("should not get there");
273 -+ return NULL;
274 -+ ''')
275 -+ freed = []
276 -+ class freestring(str):
277 -+ def __del__(self):
278 -+ freed.append('x')
279 -+ raises(TypeError, pybuffer,
280 -+ freestring("string"), freestring("other string"), 42)
281 -+ import gc; gc.collect()
282 -+ assert freed == ['x', 'x']
283 -+
284 -+
285 - def test_pyarg_parse_charbuf_and_length(self):
286 - """
287 - The `t#` format specifier can be used to parse a read-only 8-bit
288
289 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
290 deleted file mode 100644
291 index 146399d..0000000
292 --- a/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-146ddf82a279.patch
293 +++ /dev/null
294 @@ -1,25 +0,0 @@
295 -changeset: 55567:146ddf82a279
296 -user: Armin Rigo <arigo@×××××.org>
297 -date: Mon Jun 11 10:33:19 2012 +0200
298 -summary: More ignored ops
299 -
300 -diff -r 04ea518e5b71 -r 146ddf82a279 pypy/translator/c/gcc/trackgcroot.py
301 ---- a/pypy/translator/c/gcc/trackgcroot.py Mon Jun 11 10:28:26 2012 +0200
302 -+++ b/pypy/translator/c/gcc/trackgcroot.py Mon Jun 11 10:33:19 2012 +0200
303 -@@ -476,13 +476,13 @@
304 - # floating-point operations cannot produce GC pointers
305 - 'f',
306 - 'cvt', 'ucomi', 'comi', 'subs', 'subp' , 'adds', 'addp', 'xorp',
307 -- 'movap', 'movd', 'movlp', 'sqrtsd', 'movhpd',
308 -+ 'movap', 'movd', 'movlp', 'sqrt', 'rsqrt', 'movhpd',
309 - 'mins', 'minp', 'maxs', 'maxp', 'unpck', 'pxor', 'por', # sse2
310 - 'shufps', 'shufpd',
311 - # arithmetic operations should not produce GC pointers
312 - 'inc', 'dec', 'not', 'neg', 'or', 'and', 'sbb', 'adc',
313 - 'shl', 'shr', 'sal', 'sar', 'rol', 'ror', 'mul', 'imul', 'div', 'idiv',
314 -- 'bswap', 'bt', 'rdtsc',
315 -+ 'bswap', 'bt', 'rdtsc', 'rounds',
316 - 'pabs', 'pack', 'padd', 'palign', 'pand', 'pavg', 'pcmp', 'pextr',
317 - 'phadd', 'phsub', 'pinsr', 'pmadd', 'pmax', 'pmin', 'pmovmsk',
318 - 'pmul', 'por', 'psadb', 'pshuf', 'psign', 'psll', 'psra', 'psrl',
319 -
320
321 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
322 deleted file mode 100644
323 index 51a53ca..0000000
324 --- a/dev-python/pypy-binpackage/files/1.9-more-ignored-ops-a9a8faa76bca.patch
325 +++ /dev/null
326 @@ -1,32 +0,0 @@
327 -changeset: 55523:a9a8faa76bca
328 -parent: 55518:f0daafccddc5
329 -user: Armin Rigo <arigo@×××××.org>
330 -date: Fri Jun 08 19:55:01 2012 +0200
331 -summary: Add more instructions to ignore by copying from Intel docs.
332 -
333 -diff -r f0daafccddc5 -r a9a8faa76bca pypy/translator/c/gcc/trackgcroot.py
334 ---- a/pypy/translator/c/gcc/trackgcroot.py Fri Jun 08 18:30:54 2012 +0200
335 -+++ b/pypy/translator/c/gcc/trackgcroot.py Fri Jun 08 19:55:01 2012 +0200
336 -@@ -483,8 +483,10 @@
337 - 'inc', 'dec', 'not', 'neg', 'or', 'and', 'sbb', 'adc',
338 - 'shl', 'shr', 'sal', 'sar', 'rol', 'ror', 'mul', 'imul', 'div', 'idiv',
339 - 'bswap', 'bt', 'rdtsc',
340 -- 'punpck', 'pshufd', 'pcmp', 'pand', 'psllw', 'pslld', 'psllq',
341 -- 'paddq', 'pinsr', 'pmul', 'psrl',
342 -+ 'pabs', 'pack', 'padd', 'palign', 'pand', 'pavg', 'pcmp', 'pextr',
343 -+ 'phadd', 'phsub', 'pinsr', 'pmadd', 'pmax', 'pmin', 'pmovmsk',
344 -+ 'pmul', 'por', 'psadb', 'pshuf', 'psign', 'psll', 'psra', 'psrl',
345 -+ 'psub', 'punpck', 'pxor',
346 - # all vectors don't produce pointers
347 - 'v',
348 - # sign-extending moves should not produce GC pointers
349 -@@ -492,7 +494,7 @@
350 - # zero-extending moves should not produce GC pointers
351 - 'movz',
352 - # locked operations should not move GC pointers, at least so far
353 -- 'lock',
354 -+ 'lock', 'pause',
355 - ])
356 -
357 - # a partial list is hopefully good enough for now; it's all to support
358 -
359
360 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
361 deleted file mode 100644
362 index 5fab3a5..0000000
363 --- a/dev-python/pypy-binpackage/files/1.9-no-bytecode-4151f9c406b6.patch
364 +++ /dev/null
365 @@ -1,27 +0,0 @@
366 -# HG changeset patch
367 -# User Armin Rigo <arigo@×××××.org>
368 -# Date 1339165065 -7200
369 -# Node ID 4151f9c406b62f6c4a1fdd669389eb46eb90f9cb
370 -# Parent 68f8d7152a45fa7856a2a013799874614fcd9c33
371 -issue1043 3rd issue fixed
372 -
373 -diff -r 68f8d7152a45fa7856a2a013799874614fcd9c33 -r 4151f9c406b62f6c4a1fdd669389eb46eb90f9cb pypy/translator/goal/app_main.py
374 ---- a/pypy/translator/goal/app_main.py Fri Jun 08 16:06:33 2012 +0200
375 -+++ b/pypy/translator/goal/app_main.py Fri Jun 08 16:17:45 2012 +0200
376 -@@ -457,13 +457,13 @@
377 -
378 - if PYTHON26 and not options["ignore_environment"]:
379 - if os.getenv('PYTHONNOUSERSITE'):
380 -- options["no_user_site"] = True
381 -+ options["no_user_site"] = 1
382 - if os.getenv('PYTHONDONTWRITEBYTECODE'):
383 -- options["dont_write_bytecode"] = True
384 -+ options["dont_write_bytecode"] = 1
385 -
386 - if (options["interactive"] or
387 - (not options["ignore_environment"] and os.getenv('PYTHONINSPECT'))):
388 -- options["inspect"] = True
389 -+ options["inspect"] = 1
390 -
391 - if PYTHON26 and we_are_translated():
392 - flags = [options[flag] for flag in sys_flags]
393
394 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
395 deleted file mode 100644
396 index fe75ac2..0000000
397 --- a/dev-python/pypy-binpackage/files/1.9-no-static-hack.patch
398 +++ /dev/null
399 @@ -1,30 +0,0 @@
400 -Remove logic that links to libssl and libcrypto statically if
401 -possible. Just always link dynamically: Gentoo is expected to have
402 -sane dynamic libraries for us to use, and our users are not expected
403 -to copy their pypy binary to a system with an incompatible
404 -libssl/libcrypto and expect it to work.
405 -
406 -Patch contributed by XU Benda <heroxbd@g.o>.
407 -
408 ---- pypy/rlib/ropenssl.py 2012-06-07 21:24:48.000000000 +0900
409 -+++ pypy/rlib/ropenssl.py.new 2012-06-10 17:28:29.000000000 +0900
410 -@@ -19,18 +19,8 @@ if sys.platform == 'win32' and platform.
411 - # so that openssl/ssl.h can repair this nonsense.
412 - 'wincrypt.h']
413 - else:
414 -- libraries = ['z']
415 -+ libraries = ['z', 'ssl', 'crypto']
416 - includes = []
417 -- if (sys.platform.startswith('linux') and
418 -- os.path.exists('/usr/lib/libssl.a') and
419 -- os.path.exists('/usr/lib/libcrypto.a')):
420 -- # use static linking to avoid the infinite
421 -- # amount of troubles due to symbol versions
422 -- # and 0.9.8/1.0.0
423 -- link_files += ['/usr/lib/libssl.a', '/usr/lib/libcrypto.a']
424 -- testonly_libraries += ['ssl', 'crypto']
425 -- else:
426 -- libraries += ['ssl', 'crypto']
427 -
428 - includes += [
429 - 'openssl/ssl.h',
430
431 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
432 deleted file mode 100644
433 index 58c301e..0000000
434 --- a/dev-python/pypy-binpackage/files/1.9-pybuffer-release-double-decref-4ec2a5b49386.patch
435 +++ /dev/null
436 @@ -1,29 +0,0 @@
437 -changeset: 55598:4ec2a5b49386
438 -tag: tip
439 -user: Armin Rigo <arigo@×××××.org>
440 -date: Mon Jun 11 19:54:04 2012 +0200
441 -summary: Test and fix (thanks marienz)
442 -
443 -diff -r cdb2d1b3d0da -r 4ec2a5b49386 pypy/module/cpyext/object.py
444 ---- a/pypy/module/cpyext/object.py Mon Jun 11 19:41:35 2012 +0200
445 -+++ b/pypy/module/cpyext/object.py Mon Jun 11 19:54:04 2012 +0200
446 -@@ -489,3 +489,4 @@
447 - provides a subset of CPython's behavior.
448 - """
449 - Py_DecRef(space, view.c_obj)
450 -+ view.c_obj = lltype.nullptr(PyObject.TO)
451 -diff -r cdb2d1b3d0da -r 4ec2a5b49386 pypy/module/cpyext/test/test_object.py
452 ---- a/pypy/module/cpyext/test/test_object.py Mon Jun 11 19:41:35 2012 +0200
453 -+++ b/pypy/module/cpyext/test/test_object.py Mon Jun 11 19:54:04 2012 +0200
454 -@@ -363,6 +363,10 @@
455 - * Py_buffer and the string should be released as well.
456 - */
457 - PyBuffer_Release(&buf);
458 -+ assert(!buf.obj);
459 -+ PyBuffer_Release(&buf); /* call again, should not have any more effect */
460 -+ PyBuffer_Release(&buf);
461 -+ PyBuffer_Release(&buf);
462 -
463 - Py_RETURN_NONE;
464 - """)])
465 -
466
467 diff --git a/dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch b/dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch
468 deleted file mode 100644
469 index 6087122..0000000
470 --- a/dev-python/pypy-binpackage/files/1.9-signal-a33052b17f4e.patch
471 +++ /dev/null
472 @@ -1,65 +0,0 @@
473 -changeset: 55595:a33052b17f4e
474 -parent: 55589:4f58f2db96c0
475 -user: Armin Rigo <arigo@×××××.org>
476 -date: Mon Jun 11 18:06:35 2012 +0200
477 -summary: issue1167: changed the test (according to py.test -A on Linux), and fix
478 -
479 -diff -r 4f58f2db96c0 -r a33052b17f4e pypy/module/signal/interp_signal.py
480 ---- a/pypy/module/signal/interp_signal.py Mon Jun 11 17:05:01 2012 +0200
481 -+++ b/pypy/module/signal/interp_signal.py Mon Jun 11 18:06:35 2012 +0200
482 -@@ -227,7 +227,7 @@
483 - None -- if an unknown handler is in effect (XXX UNIMPLEMENTED)
484 - anything else -- the callable Python object used as a handler
485 - """
486 -- check_signum(space, signum)
487 -+ check_signum_in_range(space, signum)
488 - action = space.check_signal_action
489 - if signum in action.handlers_w:
490 - return action.handlers_w[signum]
491 -@@ -253,12 +253,18 @@
492 - c_pause()
493 - return space.w_None
494 -
495 --def check_signum(space, signum):
496 -+def check_signum_exists(space, signum):
497 - if signum in signal_values:
498 - return
499 - raise OperationError(space.w_ValueError,
500 - space.wrap("invalid signal value"))
501 -
502 -+def check_signum_in_range(space, signum):
503 -+ if 1 <= signum < NSIG:
504 -+ return
505 -+ raise OperationError(space.w_ValueError,
506 -+ space.wrap("signal number out of range"))
507 -+
508 -
509 - @jit.dont_look_inside
510 - @unwrap_spec(signum=int)
511 -@@ -319,7 +325,7 @@
512 -
513 - @unwrap_spec(signum=int, flag=int)
514 - def siginterrupt(space, signum, flag):
515 -- check_signum(space, signum)
516 -+ check_signum_exists(space, signum)
517 - if rffi.cast(lltype.Signed, c_siginterrupt(signum, flag)) < 0:
518 - errno = rposix.get_errno()
519 - raise OperationError(space.w_RuntimeError, space.wrap(errno))
520 -diff -r 4f58f2db96c0 -r a33052b17f4e pypy/module/signal/test/test_signal.py
521 ---- a/pypy/module/signal/test/test_signal.py Mon Jun 11 17:05:01 2012 +0200
522 -+++ b/pypy/module/signal/test/test_signal.py Mon Jun 11 18:06:35 2012 +0200
523 -@@ -154,7 +154,12 @@
524 -
525 - raises(ValueError, getsignal, 4444)
526 - raises(ValueError, signal, 4444, lambda *args: None)
527 -- raises(ValueError, signal, 42, lambda *args: None)
528 -+ import sys
529 -+ if sys.platform == 'win32':
530 -+ raises(ValueError, signal, 42, lambda *args: None)
531 -+ else:
532 -+ signal(42, lambda *args: None)
533 -+ signal(42, SIG_DFL)
534 -
535 - def test_alarm(self):
536 - try:
537 -
538
539 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
540 deleted file mode 100644
541 index 78affe9..0000000
542 --- a/dev-python/pypy-binpackage/files/1.9-ssl-errors-25d3418150d2.patch
543 +++ /dev/null
544 @@ -1,34 +0,0 @@
545 -# HG changeset patch
546 -# User Amaury Forgeot d'Arc <amauryfa@×××××.com>
547 -# Date 1339449304 -7200
548 -# Node ID 25d3418150d2e2820913043432f568e31bf3a19a
549 -# Parent 33c305197a3d05217be023fa39a692ad89802317
550 -issue1169: _ssl errors outside any SSL context should use ERR_peek_last_error()
551 -
552 -diff -r 33c305197a3d05217be023fa39a692ad89802317 -r 25d3418150d2e2820913043432f568e31bf3a19a pypy/module/_ssl/interp_ssl.py
553 ---- a/pypy/module/_ssl/interp_ssl.py Mon Jun 11 23:01:31 2012 +0200
554 -+++ b/pypy/module/_ssl/interp_ssl.py Mon Jun 11 23:15:04 2012 +0200
555 -@@ -789,7 +789,11 @@
556 - def _ssl_seterror(space, ss, ret):
557 - assert ret <= 0
558 -
559 -- if ss and ss.ssl:
560 -+ if ss is None:
561 -+ errval = libssl_ERR_peek_last_error()
562 -+ errstr = rffi.charp2str(libssl_ERR_error_string(errval, None))
563 -+ return ssl_error(space, errstr, errval)
564 -+ elif ss.ssl:
565 - err = libssl_SSL_get_error(ss.ssl, ret)
566 - else:
567 - err = SSL_ERROR_SSL
568 -diff -r 33c305197a3d05217be023fa39a692ad89802317 -r 25d3418150d2e2820913043432f568e31bf3a19a pypy/rlib/ropenssl.py
569 ---- a/pypy/rlib/ropenssl.py Mon Jun 11 23:01:31 2012 +0200
570 -+++ b/pypy/rlib/ropenssl.py Mon Jun 11 23:15:04 2012 +0200
571 -@@ -259,6 +259,7 @@
572 - ssl_external('SSL_CIPHER_get_bits', [SSL_CIPHER, rffi.INTP], rffi.INT)
573 -
574 - ssl_external('ERR_get_error', [], rffi.INT)
575 -+ssl_external('ERR_peek_last_error', [], rffi.INT)
576 - ssl_external('ERR_error_string', [rffi.ULONG, rffi.CCHARP], rffi.CCHARP)
577 -
578 - ssl_external('SSL_free', [SSL], lltype.Void)
579
580 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
581 deleted file mode 100644
582 index ac5d7ad..0000000
583 --- a/dev-python/pypy-binpackage/files/1.9-ssl-threads-1-34b3b5aac082.patch
584 +++ /dev/null
585 @@ -1,143 +0,0 @@
586 -changeset: 55575:34b3b5aac082
587 -parent: 55569:fa8262a5746a
588 -user: Armin Rigo <arigo@×××××.org>
589 -date: Mon Jun 11 14:38:35 2012 +0200
590 -summary: Move the callback logic to C code instead of using RPython code
591 -
592 -diff -r fa8262a5746a -r 34b3b5aac082 pypy/module/_ssl/__init__.py
593 ---- a/pypy/module/_ssl/__init__.py Mon Jun 11 11:04:53 2012 +0200
594 -+++ b/pypy/module/_ssl/__init__.py Mon Jun 11 14:38:35 2012 +0200
595 -@@ -31,5 +31,6 @@
596 - def startup(self, space):
597 - from pypy.rlib.ropenssl import init_ssl
598 - init_ssl()
599 -- from pypy.module._ssl.interp_ssl import setup_ssl_threads
600 -- setup_ssl_threads()
601 -+ if space.config.objspace.usemodules.thread:
602 -+ from pypy.module._ssl.thread_lock import setup_ssl_threads
603 -+ setup_ssl_threads()
604 -diff -r fa8262a5746a -r 34b3b5aac082 pypy/module/_ssl/interp_ssl.py
605 ---- a/pypy/module/_ssl/interp_ssl.py Mon Jun 11 11:04:53 2012 +0200
606 -+++ b/pypy/module/_ssl/interp_ssl.py Mon Jun 11 14:38:35 2012 +0200
607 -@@ -880,38 +880,3 @@
608 - libssl_X509_free(x)
609 - finally:
610 - libssl_BIO_free(cert)
611 --
612 --# this function is needed to perform locking on shared data
613 --# structures. (Note that OpenSSL uses a number of global data
614 --# structures that will be implicitly shared whenever multiple threads
615 --# use OpenSSL.) Multi-threaded applications will crash at random if
616 --# it is not set.
617 --#
618 --# locking_function() must be able to handle up to CRYPTO_num_locks()
619 --# different mutex locks. It sets the n-th lock if mode & CRYPTO_LOCK, and
620 --# releases it otherwise.
621 --#
622 --# filename and line are the file number of the function setting the
623 --# lock. They can be useful for debugging.
624 --_ssl_locks = []
625 --
626 --def _ssl_thread_locking_function(mode, n, filename, line):
627 -- n = intmask(n)
628 -- if n < 0 or n >= len(_ssl_locks):
629 -- return
630 --
631 -- if intmask(mode) & CRYPTO_LOCK:
632 -- _ssl_locks[n].acquire(True)
633 -- else:
634 -- _ssl_locks[n].release()
635 --
636 --def _ssl_thread_id_function():
637 -- from pypy.module.thread import ll_thread
638 -- return rffi.cast(rffi.LONG, ll_thread.get_ident())
639 --
640 --def setup_ssl_threads():
641 -- from pypy.module.thread import ll_thread
642 -- for i in range(libssl_CRYPTO_num_locks()):
643 -- _ssl_locks.append(ll_thread.allocate_lock())
644 -- libssl_CRYPTO_set_locking_callback(_ssl_thread_locking_function)
645 -- libssl_CRYPTO_set_id_callback(_ssl_thread_id_function)
646 -diff -r fa8262a5746a -r 34b3b5aac082 pypy/module/_ssl/thread_lock.py
647 ---- /dev/null Thu Jan 01 00:00:00 1970 +0000
648 -+++ b/pypy/module/_ssl/thread_lock.py Mon Jun 11 14:38:35 2012 +0200
649 -@@ -0,0 +1,78 @@
650 -+from pypy.rlib.ropenssl import *
651 -+from pypy.rpython.lltypesystem import lltype, rffi
652 -+from pypy.translator.tool.cbuild import ExternalCompilationInfo
653 -+
654 -+# CRYPTO_set_locking_callback:
655 -+#
656 -+# this function is needed to perform locking on shared data
657 -+# structures. (Note that OpenSSL uses a number of global data
658 -+# structures that will be implicitly shared whenever multiple threads
659 -+# use OpenSSL.) Multi-threaded applications will crash at random if
660 -+# it is not set.
661 -+#
662 -+# locking_function() must be able to handle up to CRYPTO_num_locks()
663 -+# different mutex locks. It sets the n-th lock if mode & CRYPTO_LOCK, and
664 -+# releases it otherwise.
665 -+#
666 -+# filename and line are the file number of the function setting the
667 -+# lock. They can be useful for debugging.
668 -+
669 -+
670 -+# This logic is moved to C code so that the callbacks can be invoked
671 -+# without caring about the GIL.
672 -+
673 -+separate_module_source = """
674 -+
675 -+#include <openssl/crypto.h>
676 -+
677 -+static unsigned int _ssl_locks_count = 0;
678 -+static struct RPyOpaque_ThreadLock *_ssl_locks;
679 -+
680 -+static unsigned long _ssl_thread_id_function(void) {
681 -+ return RPyThreadGetIdent();
682 -+}
683 -+
684 -+static void _ssl_thread_locking_function(int mode, int n, const char *file,
685 -+ int line) {
686 -+ if ((_ssl_locks == NULL) ||
687 -+ (n < 0) || ((unsigned)n >= _ssl_locks_count))
688 -+ return;
689 -+
690 -+ if (mode & CRYPTO_LOCK) {
691 -+ RPyThreadAcquireLock(_ssl_locks[n], 1);
692 -+ } else {
693 -+ RPyThreadReleaseLock(_ssl_locks[n]);
694 -+ }
695 -+}
696 -+
697 -+int _PyPy_SSL_SetupThreads(void)
698 -+{
699 -+ unsigned int i;
700 -+ _ssl_locks_count = CRYPTO_num_locks();
701 -+ _ssl_locks = calloc(_ssl_locks_count, sizeof(struct RPyOpaque_ThreadLock));
702 -+ if (_ssl_locks == NULL)
703 -+ return 0;
704 -+ for (i=0; i<_ssl_locks_count; i++) {
705 -+ if (RPyThreadLockInit(_ssl_locks + i) == 0)
706 -+ return 0;
707 -+ }
708 -+ CRYPTO_set_locking_callback(_ssl_thread_locking_function);
709 -+ CRYPTO_set_id_callback(_ssl_thread_id_function);
710 -+ return 1;
711 -+}
712 -+"""
713 -+
714 -+
715 -+eci = ExternalCompilationInfo(
716 -+ separate_module_sources=[separate_module_source],
717 -+ export_symbols=['_PyPy_SSL_SetupThreads'],
718 -+)
719 -+
720 -+_PyPy_SSL_SetupThreads = rffi.llexternal('_PyPy_SSL_SetupThreads',
721 -+ [], rffi.INT,
722 -+ compilation_info=eci)
723 -+
724 -+def setup_ssl_threads():
725 -+ result = _PyPy_SSL_SetupThreads()
726 -+ if rffi.cast(lltype.Signed, result) == 0:
727 -+ raise MemoryError
728 -
729
730 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
731 deleted file mode 100644
732 index a1878f3..0000000
733 --- a/dev-python/pypy-binpackage/files/1.9-ssl-threads-2-25cd11066d95.patch
734 +++ /dev/null
735 @@ -1,22 +0,0 @@
736 -changeset: 55578:25cd11066d95
737 -tag: tip
738 -user: Armin Rigo <arigo@×××××.org>
739 -date: Mon Jun 11 15:19:38 2012 +0200
740 -summary: Fix.
741 -
742 -diff -r e701bca5f3b9 -r 25cd11066d95 pypy/module/_ssl/thread_lock.py
743 ---- a/pypy/module/_ssl/thread_lock.py Mon Jun 11 15:01:00 2012 +0200
744 -+++ b/pypy/module/_ssl/thread_lock.py Mon Jun 11 15:19:38 2012 +0200
745 -@@ -39,9 +39,9 @@
746 - return;
747 -
748 - if (mode & CRYPTO_LOCK) {
749 -- RPyThreadAcquireLock(_ssl_locks[n], 1);
750 -+ RPyThreadAcquireLock(_ssl_locks + n, 1);
751 - } else {
752 -- RPyThreadReleaseLock(_ssl_locks[n]);
753 -+ RPyThreadReleaseLock(_ssl_locks + n);
754 - }
755 - }
756 -
757 -
758
759 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
760 similarity index 79%
761 rename from dev-python/pypy-binpackage/files/1.9-distutils-fix_handling_of_executables_and_flags.patch
762 rename to dev-python/pypy-binpackage/files/2.1-distutils-fix_handling_of_executables_and_flags.patch
763 index 4a35ea8..2a27e3a 100644
764 --- a/dev-python/pypy-binpackage/files/1.9-distutils-fix_handling_of_executables_and_flags.patch
765 +++ b/dev-python/pypy-binpackage/files/2.1-distutils-fix_handling_of_executables_and_flags.patch
766 @@ -1,78 +1,5 @@
767 ---- lib-python/2.7/distutils/ccompiler.py
768 -+++ lib-python/2.7/distutils/ccompiler.py
769 -@@ -27,10 +27,16 @@
770 - varies across Unices and is stored in Python's Makefile.
771 - """
772 - if compiler.compiler_type == "unix":
773 -- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
774 -- _sysconfig.get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
775 -- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
776 -- 'ARFLAGS')
777 -+ cc = ' '.join(compiler.compiler)
778 -+ cxx = ' '.join(compiler.compiler_cxx)
779 -+ ldshared = ' '.join(compiler.linker_so)
780 -+ ldcxxshared = ' '.join(compiler.linker_so_cxx)
781 -+ ar = compiler.archiver[0]
782 -+
783 -+ cflags = ''
784 -+ cxxflags = ''
785 -+ ccshared = '-fPIC'
786 -+ ar_flags = compiler.archiver[1]
787 -
788 - if 'CC' in os.environ:
789 - cc = os.environ['CC']
790 -@@ -38,19 +44,27 @@
791 - cxx = os.environ['CXX']
792 - if 'LDSHARED' in os.environ:
793 - ldshared = os.environ['LDSHARED']
794 -+ if 'LDCXXSHARED' in os.environ:
795 -+ ldcxxshared = os.environ['LDCXXSHARED']
796 - if 'CPP' in os.environ:
797 - cpp = os.environ['CPP']
798 - else:
799 - cpp = cc + " -E" # not always
800 - if 'LDFLAGS' in os.environ:
801 - ldshared = ldshared + ' ' + os.environ['LDFLAGS']
802 -+ ldcxxshared = ldcxxshared + ' ' + os.environ['LDFLAGS']
803 - if 'CFLAGS' in os.environ:
804 -- cflags = opt + ' ' + os.environ['CFLAGS']
805 -+ cflags = os.environ['CFLAGS']
806 - ldshared = ldshared + ' ' + os.environ['CFLAGS']
807 -+ if 'CXXFLAGS' in os.environ:
808 -+ cxxflags = os.environ['CXXFLAGS']
809 -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CXXFLAGS']
810 - if 'CPPFLAGS' in os.environ:
811 - cpp = cpp + ' ' + os.environ['CPPFLAGS']
812 - cflags = cflags + ' ' + os.environ['CPPFLAGS']
813 -+ cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
814 - ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
815 -+ ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
816 - if 'AR' in os.environ:
817 - ar = os.environ['AR']
818 - if 'ARFLAGS' in os.environ:
819 -@@ -59,17 +73,19 @@
820 - archiver = ar + ' ' + ar_flags
821 -
822 - cc_cmd = cc + ' ' + cflags
823 -+ cxx_cmd = cxx + ' ' + cxxflags
824 - compiler.set_executables(
825 - preprocessor=cpp,
826 - compiler=cc_cmd,
827 - compiler_so=cc_cmd + ' ' + ccshared,
828 -- compiler_cxx=cxx,
829 -+ compiler_cxx=cxx_cmd,
830 -+ compiler_so_cxx=cxx_cmd + ' ' + ccshared,
831 - linker_so=ldshared,
832 - linker_exe=cc,
833 -+ linker_so_cxx=ldcxxshared,
834 -+ linker_exe_cxx=cxx,
835 - archiver=archiver)
836 -
837 -- compiler.shared_lib_extension = so_ext
838 --
839 - class CCompiler:
840 - """Abstract base class to define the interface that must be implemented
841 - by real compiler classes. Also has some utility methods used by
842 +http://bugs.python.org/issue1222585
843 +
844 --- lib-python/2.7/distutils/cygwinccompiler.py
845 +++ lib-python/2.7/distutils/cygwinccompiler.py
846 @@ -135,9 +135,13 @@
847 @@ -105,7 +32,7 @@
848 except DistutilsExecError, msg:
849 raise CompileError, msg
850
851 -@@ -325,10 +333,15 @@
852 +@@ -325,10 +338,15 @@
853 self.set_executables(compiler='gcc -mno-cygwin -O -Wall',
854 compiler_so='gcc -mno-cygwin -mdll -O -Wall',
855 compiler_cxx='g++ -mno-cygwin -O -Wall',
856 @@ -155,23 +82,24 @@
857
858 --- lib-python/2.7/distutils/sysconfig_cpython.py
859 +++ lib-python/2.7/distutils/sysconfig_cpython.py
860 -@@ -149,9 +149,12 @@
861 +@@ -149,10 +149,12 @@
862 varies across Unices and is stored in Python's Makefile.
863 """
864 if compiler.compiler_type == "unix":
865 -- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext) = \
866 +- (cc, cxx, opt, cflags, ccshared, ldshared, so_ext, ar, ar_flags) = \
867 - get_config_vars('CC', 'CXX', 'OPT', 'CFLAGS',
868 -- 'CCSHARED', 'LDSHARED', 'SO')
869 -+ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext) = \
870 -+ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED',
871 -+ 'LDCXXSHARED', 'SO')
872 +- 'CCSHARED', 'LDSHARED', 'SO', 'AR',
873 +- 'ARFLAGS')
874 ++ (cc, cxx, ccshared, ldshared, ldcxxshared, so_ext, ar, ar_flags) = \
875 ++ get_config_vars('CC', 'CXX', 'CCSHARED', 'LDSHARED', 'LDCXXSHARED',
876 ++ 'SO', 'AR', 'ARFLAGS')
877 +
878 + cflags = ''
879 + cxxflags = ''
880
881 + newcc = None
882 if 'CC' in os.environ:
883 - cc = os.environ['CC']
884 -@@ -159,28 +162,40 @@
885 +@@ -190,19 +192,27 @@
886 cxx = os.environ['CXX']
887 if 'LDSHARED' in os.environ:
888 ldshared = os.environ['LDSHARED']
889 @@ -197,6 +125,11 @@
890 + cxxflags = cxxflags + ' ' + os.environ['CPPFLAGS']
891 ldshared = ldshared + ' ' + os.environ['CPPFLAGS']
892 + ldcxxshared = ldcxxshared + ' ' + os.environ['CPPFLAGS']
893 + if 'AR' in os.environ:
894 + ar = os.environ['AR']
895 + if 'ARFLAGS' in os.environ:
896 +@@ -211,13 +221,17 @@
897 + archiver = ar + ' ' + ar_flags
898
899 cc_cmd = cc + ' ' + cflags
900 + cxx_cmd = cxx + ' ' + cxxflags
901 @@ -208,14 +141,13 @@
902 + compiler_cxx=cxx_cmd,
903 + compiler_so_cxx=cxx_cmd + ' ' + ccshared,
904 linker_so=ldshared,
905 -- linker_exe=cc)
906 -+ linker_exe=cc,
907 + linker_exe=cc,
908 + linker_so_cxx=ldcxxshared,
909 -+ linker_exe_cxx=cxx)
910 ++ linker_exe_cxx=cxx,
911 + archiver=archiver)
912
913 compiler.shared_lib_extension = so_ext
914 -
915 -@@ -506,7 +521,7 @@
916 +@@ -529,7 +543,7 @@
917 for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED',
918 # a number of derived variables. These need to be
919 # patched up as well.
920 @@ -224,7 +156,7 @@
921 flags = _config_vars[key]
922 flags = re.sub('-arch\s+\w+\s', ' ', flags)
923 flags = re.sub('-isysroot [^ \t]*', ' ', flags)
924 -@@ -525,7 +540,7 @@
925 +@@ -548,7 +562,7 @@
926 for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED',
927 # a number of derived variables. These need to be
928 # patched up as well.
929 @@ -233,7 +165,7 @@
930
931 flags = _config_vars[key]
932 flags = re.sub('-arch\s+\w+\s', ' ', flags)
933 -@@ -549,7 +564,7 @@
934 +@@ -572,7 +586,7 @@
935 for key in ('LDFLAGS', 'BASECFLAGS', 'LDSHARED',
936 # a number of derived variables. These need to be
937 # patched up as well.
938 @@ -244,11 +176,11 @@
939 flags = re.sub('-isysroot\s+\S+(\s|$)', ' ', flags)
940 --- lib-python/2.7/distutils/sysconfig_pypy.py
941 +++ lib-python/2.7/distutils/sysconfig_pypy.py
942 -@@ -114,13 +114,56 @@
943 +@@ -123,7 +123,55 @@
944 optional C speedup components.
945 """
946 if compiler.compiler_type == "unix":
947 -- compiler.compiler_so.extend(['-fPIC', '-Wimplicit'])
948 +- compiler.compiler_so.extend(['-O2', '-fPIC', '-Wimplicit'])
949 + cc = ' '.join(compiler.compiler)
950 + cxx = ' '.join(compiler.compiler_cxx)
951 + ldshared = ' '.join(compiler.linker_so)
952 @@ -299,14 +231,8 @@
953 + linker_so_cxx=ldcxxshared,
954 + linker_exe_cxx=cxx)
955 compiler.shared_lib_extension = get_config_var('SO')
956 -- if "CFLAGS" in os.environ:
957 -- cflags = os.environ["CFLAGS"]
958 -- compiler.compiler.append(cflags)
959 -- compiler.compiler_so.append(cflags)
960 -- compiler.linker_so.append(cflags)
961 -
962 -
963 - from sysconfig_cpython import (
964 + if "CPPFLAGS" in os.environ:
965 + cppflags = shlex.split(os.environ["CPPFLAGS"])
966 --- lib-python/2.7/distutils/unixccompiler.py
967 +++ lib-python/2.7/distutils/unixccompiler.py
968 @@ -114,14 +114,17 @@
969 @@ -335,7 +261,7 @@
970 }
971
972 if sys.platform[:6] == "darwin":
973 -@@ -186,11 +189,18 @@
974 +@@ -171,11 +174,18 @@
975
976 def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
977 compiler_so = self.compiler_so
978 @@ -356,7 +282,7 @@
979 except DistutilsExecError, msg:
980 raise CompileError, msg
981
982 -@@ -247,23 +257,16 @@
983 +@@ -232,23 +242,16 @@
984 ld_args.extend(extra_postargs)
985 self.mkpath(os.path.dirname(output_filename))
986 try:
987
988 diff --git a/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild b/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild
989 index 0ceb9ec..0e390b0 100644
990 --- a/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild
991 +++ b/dev-python/pypy-binpackage/pypy-binpackage-2.0.2.ebuild
992 @@ -16,7 +16,7 @@ HOMEPAGE="http://pypy.org/"
993 SRC_URI="mirror://bitbucket/pypy/pypy/downloads/${MY_P}-src.tar.bz2"
994
995 LICENSE="MIT"
996 -SLOT=$(get_version_component_range 1-2 ${PV})
997 +SLOT=0
998 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
999 IUSE="bzip2 +jit ncurses sandbox shadowstack sse2"
1000
1001
1002 diff --git a/dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild b/dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild
1003 similarity index 59%
1004 rename from dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild
1005 rename to dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild
1006 index 252e9c1..a138e0c 100644
1007 --- a/dev-python/pypy-binpackage/pypy-binpackage-1.9-r2.ebuild
1008 +++ b/dev-python/pypy-binpackage/pypy-binpackage-2.2.1.ebuild
1009 @@ -1,24 +1,22 @@
1010 -# Copyright 1999-2013 Gentoo Foundation
1011 +# Copyright 1999-2014 Gentoo Foundation
1012 # Distributed under the terms of the GNU General Public License v2
1013 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/pypy-1.9-r2.ebuild,v 1.4 2013/02/17 22:45:18 floppym Exp $
1014 +# $Header: /var/cvsroot/gentoo-x86/dev-python/pypy/pypy-2.2.1.ebuild,v 1.2 2014/03/12 09:14:21 mgorny Exp $
1015
1016 EAPI=5
1017
1018 -# pypy should be preferred, per upstream.
1019 -# that's the easiest way of forcing it.
1020 -PYTHON_COMPAT=( pypy{1_8,1_9,2_0} )
1021 -inherit check-reqs eutils multilib multiprocessing python-any-r1 toolchain-funcs vcs-snapshot versionator
1022 -
1023 +PYTHON_COMPAT=( python2_7 pypy2_0 )
1024 +inherit check-reqs eutils multilib multiprocessing pax-utils \
1025 + python-any-r1 toolchain-funcs versionator
1026 MY_P=pypy-${PV}
1027
1028 DESCRIPTION="A fast, compliant alternative implementation of the Python language"
1029 HOMEPAGE="http://pypy.org/"
1030 -SRC_URI="https://bitbucket.org/pypy/pypy/get/release-${PV}.tar.bz2 -> ${MY_P}.tar.bz2"
1031 +SRC_URI="mirror://bitbucket/pypy/pypy/downloads/${MY_P}-src.tar.bz2"
1032
1033 LICENSE="MIT"
1034 -SLOT=$(get_version_component_range 1-2 ${PV})
1035 +SLOT="0/$(get_version_component_range 1-2 ${PV})"
1036 KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
1037 -IUSE="bzip2 +jit ncurses sandbox shadowstack sse2"
1038 +IUSE="bzip2 +jit ncurses sandbox shadowstack sqlite sse2"
1039
1040 DEPEND=">=sys-libs/zlib-1.1.3
1041 virtual/libffi
1042 @@ -30,19 +28,14 @@ DEPEND=">=sys-libs/zlib-1.1.3
1043 app-arch/xz-utils
1044 ${PYTHON_DEPS}"
1045
1046 -S=${WORKDIR}/pypy-${PV}
1047 +S="${WORKDIR}/${MY_P}-src"
1048
1049 pkg_pretend() {
1050 - if [[ ! ${PYPY_BINPKG_STORE} ]]; then
1051 - eerror "Please set PYPY_BINPKG_STORE to the location where built"
1052 - eerror "packages are to be stored."
1053 -
1054 - die "Set PYPY_BINPKG_STORE."
1055 - fi
1056 -
1057 CHECKREQS_MEMORY="2G"
1058 use amd64 && CHECKREQS_MEMORY="4G"
1059 check-reqs_pkg_pretend
1060 +
1061 + [[ ${PYPY_BINPKG_STORE} ]] || die 'PYPY_BINPKG_STORE unset, wtf?!'
1062 }
1063
1064 pkg_setup() {
1065 @@ -73,22 +66,9 @@ pkg_setup() {
1066 }
1067
1068 src_prepare() {
1069 - epatch "${FILESDIR}/${PV}-no-bytecode-4151f9c406b6.patch"
1070 - epatch "${FILESDIR}/${PV}-scripts-location.patch"
1071 - epatch "${FILESDIR}/${PV}-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
1072 - epatch "${FILESDIR}/${PV}-distutils-fix_handling_of_executables_and_flags.patch"
1073 - epatch "${FILESDIR}/${PV}-ssl-threads-1-34b3b5aac082.patch"
1074 - epatch "${FILESDIR}/${PV}-ssl-threads-2-25cd11066d95.patch"
1075 - epatch "${FILESDIR}/${PV}-get_python_lib_standard_lib-04ea518e5b71.patch"
1076 - epatch "${FILESDIR}/${PV}-more-ignored-ops-a9a8faa76bca.patch"
1077 - epatch "${FILESDIR}/${PV}-more-ignored-ops-146ddf82a279.patch"
1078 - epatch "${FILESDIR}/${PV}-pybuffer-release-double-decref-4ec2a5b49386.patch"
1079 - epatch "${FILESDIR}/${PV}-signal-a33052b17f4e.patch"
1080 - epatch "${FILESDIR}/${PV}-getargs-freelist-c26dc70ee340.patch"
1081 - epatch "${FILESDIR}/${PV}-ssl-errors-25d3418150d2.patch"
1082 -
1083 - # The following is Gentoo-specific.
1084 - epatch "${FILESDIR}/${PV}-no-static-hack.patch"
1085 + epatch "${FILESDIR}/1.9-scripts-location.patch"
1086 + epatch "${FILESDIR}/1.9-distutils.unixccompiler.UnixCCompiler.runtime_library_dir_option.patch"
1087 + epatch "${FILESDIR}/2.1-distutils-fix_handling_of_executables_and_flags.patch"
1088
1089 epatch_user
1090 }
1091 @@ -124,7 +104,7 @@ src_compile() {
1092 ${jit_backend}
1093 --make-jobs=$(makeopts_jobs)
1094
1095 - ./pypy/translator/goal/targetpypystandalone.py
1096 + pypy/goal/targetpypystandalone
1097 )
1098
1099 # Avoid linking against libraries disabled by use flags
1100 @@ -143,7 +123,7 @@ src_compile() {
1101 )
1102 done
1103
1104 - set -- "${PYTHON}" ./pypy/translator/goal/translate.py --batch "${args[@]}"
1105 + set -- "${PYTHON}" rpython/bin/rpython --batch "${args[@]}"
1106 echo -e "\033[1m${@}\033[0m"
1107 "${@}" || die "compile error"
1108 }
1109 @@ -166,7 +146,7 @@ src_install() {
1110 chmod +x "${BIN_P}${suffix}"/pypy-c || die
1111
1112 tar -cf "${BIN_P}${suffix}.tar" "${BIN_P}${suffix}" || die
1113 - xz -vz9 "${BIN_P}${suffix}.tar" || die
1114 + xz -vz9e "${BIN_P}${suffix}.tar" || die
1115 }
1116
1117 # Yup, very hacky.