python: Update to 2.7.12.
Message ID | 1476272472-21263-1-git-send-email-stefan.schantl@ipfire.org |
---|---|
State | Accepted |
Commit | 4034c523117d03861162c0b66cdc5f07c66b4b27 |
Headers |
Return-Path: <development-bounces@lists.ipfire.org> Received: from mail01.ipfire.org (hedwig.ipfire.org [172.28.1.200]) by web02.ipfire.org (Postfix) with ESMTP id 85F6F61F0E for <patchwork@ipfire.org>; Wed, 12 Oct 2016 13:40:34 +0200 (CEST) Received: from mail01.ipfire.org (localhost [IPv6:::1]) by mail01.ipfire.org (Postfix) with ESMTP id 4AD694523; Wed, 12 Oct 2016 13:40:27 +0200 (CEST) Received: from tuxedo.stevee (unknown [46.125.249.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail01.ipfire.org (Postfix) with ESMTPSA id 5F45A44AB; Wed, 12 Oct 2016 13:40:24 +0200 (CEST) From: Stefan Schantl <stefan.schantl@ipfire.org> To: development@lists.ipfire.org Subject: [PATCH] python: Update to 2.7.12. Date: Wed, 12 Oct 2016 13:41:12 +0200 Message-Id: <1476272472-21263-1-git-send-email-stefan.schantl@ipfire.org> X-Mailer: git-send-email 2.7.4 X-BeenThere: development@lists.ipfire.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: IPFire development talk <development.lists.ipfire.org> List-Unsubscribe: <http://lists.ipfire.org/mailman/options/development>, <mailto:development-request@lists.ipfire.org?subject=unsubscribe> List-Archive: <http://lists.ipfire.org/pipermail/development/> List-Post: <mailto:development@lists.ipfire.org> List-Help: <mailto:development-request@lists.ipfire.org?subject=help> List-Subscribe: <http://lists.ipfire.org/mailman/listinfo/development>, <mailto:development-request@lists.ipfire.org?subject=subscribe> Errors-To: development-bounces@lists.ipfire.org Sender: "Development" <development-bounces@lists.ipfire.org> |
Message
Stefan Schantl
Oct. 12, 2016, 10:41 p.m. UTC
This is a minor update to the lastest available version of
the python 2.7 series.
* Drop support for SELinux.
Fixes #11226.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
...0134-fix-COUNT_ALLOCS-failure-in-test_sys.patch | 14 +-
...6-skip-tests-of-seeking-stdin-in-rpmbuild.patch | 25 +--
python/patches/00157-uid-gid-overflows.patch | 76 +++----
python/patches/00170-gc-assertions.patch | 4 +-
...00173-workaround-ENOPROTOOPT-in-bind_port.patch | 7 +-
...-4238-hostname-check-bypass-in-SSL-module.patch | 247 ---------------------
python/patches/00186-memory-leak-marshalc.patch | 57 -----
python/patches/05000-autotool-intermediates.patch | 13 +-
python/patches/python-2.5.1-plural-fix.patch | 2 +-
python/patches/python-2.6-rpath.patch | 2 +-
python/patches/python-2.7rc1-binutils-no-dep.patch | 14 --
python/python-2.7.12-lib64.patch | 184 +++++++++++++++
python/python-2.7.3-lib64.patch | 196 ----------------
python/python.nm | 7 +-
14 files changed, 250 insertions(+), 598 deletions(-)
delete mode 100644 python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch
delete mode 100644 python/patches/00186-memory-leak-marshalc.patch
delete mode 100644 python/patches/python-2.7rc1-binutils-no-dep.patch
create mode 100644 python/python-2.7.12-lib64.patch
delete mode 100644 python/python-2.7.3-lib64.patch
Comments
Hi, this patch isn't showing up in Patchwork :( -Michael On Wed, 2016-10-12 at 13:41 +0200, Stefan Schantl wrote: > This is a minor update to the lastest available version of > the python 2.7 series. > > * Drop support for SELinux. > > Fixes #11226. > > Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org> > --- > ...0134-fix-COUNT_ALLOCS-failure-in-test_sys.patch | 14 +- > ...6-skip-tests-of-seeking-stdin-in-rpmbuild.patch | 25 +-- > python/patches/00157-uid-gid-overflows.patch | 76 +++---- > python/patches/00170-gc-assertions.patch | 4 +- > ...00173-workaround-ENOPROTOOPT-in-bind_port.patch | 7 +- > ...-4238-hostname-check-bypass-in-SSL-module.patch | 247 -------------------- > - > python/patches/00186-memory-leak-marshalc.patch | 57 ----- > python/patches/05000-autotool-intermediates.patch | 13 +- > python/patches/python-2.5.1-plural-fix.patch | 2 +- > python/patches/python-2.6-rpath.patch | 2 +- > python/patches/python-2.7rc1-binutils-no-dep.patch | 14 -- > python/python-2.7.12-lib64.patch | 184 +++++++++++++++ > python/python-2.7.3-lib64.patch | 196 ---------------- > python/python.nm | 7 +- > 14 files changed, 250 insertions(+), 598 deletions(-) > delete mode 100644 python/patches/00185-CVE-2013-4238-hostname-check-bypass- > in-SSL-module.patch > delete mode 100644 python/patches/00186-memory-leak-marshalc.patch > delete mode 100644 python/patches/python-2.7rc1-binutils-no-dep.patch > create mode 100644 python/python-2.7.12-lib64.patch > delete mode 100644 python/python-2.7.3-lib64.patch > > diff --git a/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch > b/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch > index 38381ef..71e7f68 100644 > --- a/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch > +++ b/python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch > @@ -1,9 +1,11 @@ > ---- Python-2.7.2/Lib/test/test_sys.py.mark-tests-that-fail-in-rpmbuild > 2011-09-08 18:02:31.627362039 -0400 > -+++ Python-2.7.2/Lib/test/test_sys.py 2011-09-08 18:15:29.450308851 > -0400 > -@@ -734,6 +734,11 @@ class SizeofTest(unittest.TestCase): > - # (PyTypeObject + PyNumberMethods + PyMappingMethods + > - # PySequenceMethods + PyBufferProcs) > - s = vsize('P2P15Pl4PP9PP11PI') + struct.calcsize('41P 10P 3P 6P') > +diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py > +index 0dd4258..d9b3267 100644 > +--- a/Lib/test/test_sys.py > ++++ b/Lib/test/test_sys.py > +@@ -769,6 +769,11 @@ class SizeofTest(unittest.TestCase): > + '10P' # PySequenceMethods > + '6P' # PyBufferProcs > + '2P') > + > + # COUNT_ALLOCS adds further fields to the end of a PyTypeObject: > + if hasattr(sys, 'getcounts'): > diff --git a/python/patches/00136-skip-tests-of-seeking-stdin-in- > rpmbuild.patch b/python/patches/00136-skip-tests-of-seeking-stdin-in- > rpmbuild.patch > index 845fb2a..4d7626f 100644 > --- a/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch > +++ b/python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch > @@ -1,22 +1,11 @@ > -diff -up Python-2.7.2/Lib/test/test_file2k.py.skip-tests-of-seeking-stdin-in- > rpmbuild Python-2.7.2/Lib/test/test_file2k.py > ---- Python-2.7.2/Lib/test/test_file2k.py.skip-tests-of-seeking-stdin-in- > rpmbuild 2011-09-08 17:23:50.922520729 -0400 > -+++ Python-2.7.2/Lib/test/test_file2k.py 2011-09-08 17:24:41.368517277 > -0400 > -@@ -213,6 +213,7 @@ class OtherFileTests(unittest.TestCase): > +diff -up Python-2.7.6/Lib/test/test_file2k.py.stdin-test Python- > 2.7.6/Lib/test/test_file2k.py > +--- Python-2.7.6/Lib/test/test_file2k.py.stdin-test 2013-11-10 > 08:36:40.000000000 +0100 > ++++ Python-2.7.6/Lib/test/test_file2k.py 2014-01-29 14:28:01.029488055 > +0100 > +@@ -223,6 +223,7 @@ class OtherFileTests(unittest.TestCase): > else: > f.close() > > + @unittest._skipInRpmBuild('seems not to raise the exception when run in > Koji') > - def testStdin(self): > - # This causes the interpreter to exit on OSF1 v5.1. > - if sys.platform != 'osf1V5': > -diff -up Python-2.7.2/Lib/test/test_file.py.skip-tests-of-seeking-stdin-in- > rpmbuild Python-2.7.2/Lib/test/test_file.py > ---- Python-2.7.2/Lib/test/test_file.py.skip-tests-of-seeking-stdin-in- > rpmbuild 2011-09-08 17:20:31.146534389 -0400 > -+++ Python-2.7.2/Lib/test/test_file.py 2011-09-08 17:24:45.016517030 > -0400 > -@@ -154,6 +154,7 @@ class OtherFileTests(unittest.TestCase): > - f.close() > - self.fail('%r is an invalid file mode' % mode) > - > -+ @unittest._skipInRpmBuild('seems not to raise the exception when run in > Koji') > - def testStdin(self): > - # This causes the interpreter to exit on OSF1 v5.1. > - if sys.platform != 'osf1V5': > + def testStdinSeek(self): > + if sys.platform == 'osf1V5': > + # This causes the interpreter to exit on OSF1 v5.1. > diff --git a/python/patches/00157-uid-gid-overflows.patch > b/python/patches/00157-uid-gid-overflows.patch > index 13546bb..a31c98a 100644 > --- a/python/patches/00157-uid-gid-overflows.patch > +++ b/python/patches/00157-uid-gid-overflows.patch > @@ -2,48 +2,48 @@ diff -up Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows > Python-2.7.3/Lib/tes > --- Python-2.7.3/Lib/test/test_os.py.uid-gid-overflows 2012-04-09 > 19:07:32.000000000 -0400 > +++ Python-2.7.3/Lib/test/test_os.py 2012-06-26 14:51:36.000817929 > -0400 > @@ -677,30 +677,36 @@ if sys.platform != 'win32': > - def test_setuid(self): > - if os.getuid() != 0: > - self.assertRaises(os.error, os.setuid, 0) > -+ self.assertRaises(TypeError, os.setuid, 'not an int') > - self.assertRaises(OverflowError, os.setuid, 1<<32) > + def test_setuid(self): > + if os.getuid() != 0: > + self.assertRaises(os.error, os.setuid, 0) > ++ self.assertRaises(TypeError, os.setuid, 'not an int') > + self.assertRaises(OverflowError, os.setuid, 1<<32) > > - if hasattr(os, 'setgid'): > - def test_setgid(self): > - if os.getuid() != 0: > - self.assertRaises(os.error, os.setgid, 0) > -+ self.assertRaises(TypeError, os.setgid, 'not an int') > - self.assertRaises(OverflowError, os.setgid, 1<<32) > + @unittest.skipUnless(hasattr(os, 'setgid'), 'test needs os.setgid()') > + def test_setgid(self): > + if os.getuid() != 0: > + self.assertRaises(os.error, os.setgid, 0) > ++ self.assertRaises(TypeError, os.setgid, 'not an int') > + self.assertRaises(OverflowError, os.setgid, 1<<32) > > - if hasattr(os, 'seteuid'): > - def test_seteuid(self): > - if os.getuid() != 0: > - self.assertRaises(os.error, os.seteuid, 0) > -+ self.assertRaises(TypeError, os.seteuid, 'not an int') > - self.assertRaises(OverflowError, os.seteuid, 1<<32) > + @unittest.skipUnless(hasattr(os, 'seteuid'), 'test needs os.seteuid()') > + def test_seteuid(self): > + if os.getuid() != 0: > + self.assertRaises(os.error, os.seteuid, 0) > ++ self.assertRaises(TypeError, os.seteuid, 'not an int') > + self.assertRaises(OverflowError, os.seteuid, 1<<32) > > - if hasattr(os, 'setegid'): > - def test_setegid(self): > - if os.getuid() != 0: > - self.assertRaises(os.error, os.setegid, 0) > -+ self.assertRaises(TypeError, os.setegid, 'not an int') > - self.assertRaises(OverflowError, os.setegid, 1<<32) > + @unittest.skipUnless(hasattr(os, 'setegid'), 'test needs os.setegid()') > + def test_setegid(self): > + if os.getuid() != 0: > + self.assertRaises(os.error, os.setegid, 0) > ++ self.assertRaises(TypeError, os.setegid, 'not an int') > + self.assertRaises(OverflowError, os.setegid, 1<<32) > > - if hasattr(os, 'setreuid'): > - def test_setreuid(self): > - if os.getuid() != 0: > - self.assertRaises(os.error, os.setreuid, 0, 0) > -+ self.assertRaises(TypeError, os.setreuid, 'not an int', 0) > -+ self.assertRaises(TypeError, os.setreuid, 0, 'not an int') > - self.assertRaises(OverflowError, os.setreuid, 1<<32, 0) > - self.assertRaises(OverflowError, os.setreuid, 0, 1<<32) > + @unittest.skipUnless(hasattr(os, 'setreuid'), 'test needs > os.setreuid()') > + def test_setreuid(self): > + if os.getuid() != 0: > + self.assertRaises(os.error, os.setreuid, 0, 0) > ++ self.assertRaises(TypeError, os.setreuid, 'not an int', 0) > ++ self.assertRaises(TypeError, os.setreuid, 0, 'not an int') > + self.assertRaises(OverflowError, os.setreuid, 1<<32, 0) > + self.assertRaises(OverflowError, os.setreuid, 0, 1<<32) > > @@ -715,6 +721,8 @@ if sys.platform != 'win32': > - def test_setregid(self): > - if os.getuid() != 0: > - self.assertRaises(os.error, os.setregid, 0, 0) > -+ self.assertRaises(TypeError, os.setregid, 'not an int', 0) > -+ self.assertRaises(TypeError, os.setregid, 0, 'not an int') > - self.assertRaises(OverflowError, os.setregid, 1<<32, 0) > - self.assertRaises(OverflowError, os.setregid, 0, 1<<32) > + def test_setregid(self): > + if os.getuid() != 0: > + self.assertRaises(os.error, os.setregid, 0, 0) > ++ self.assertRaises(TypeError, os.setregid, 'not an int', 0) > ++ self.assertRaises(TypeError, os.setregid, 0, 'not an int') > + self.assertRaises(OverflowError, os.setregid, 1<<32, 0) > + self.assertRaises(OverflowError, os.setregid, 0, 1<<32) > > diff --git a/python/patches/00170-gc-assertions.patch b/python/patches/00170- > gc-assertions.patch > index 3fb37ff..f3a0838 100644 > --- a/python/patches/00170-gc-assertions.patch > +++ b/python/patches/00170-gc-assertions.patch > @@ -3,8 +3,8 @@ diff -up Python-2.7.3/Lib/test/test_gc.py.gc-assertions > Python-2.7.3/Lib/test/te > +++ Python-2.7.3/Lib/test/test_gc.py 2013-02-20 16:39:52.720489297 > -0500 > @@ -1,6 +1,7 @@ > import unittest > --from test.test_support import verbose, run_unittest > -+from test.test_support import verbose, run_unittest, import_module > +-from test.test_support import verbose, run_unittest, start_threads > ++from test.test_support import verbose, run_unittest, start_threads, > import_module > import sys > +import sysconfig > import time > diff --git a/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch > b/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch > index eb34610..3e83d67 100644 > --- a/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch > +++ b/python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch > @@ -8,6 +8,7 @@ diff -up Python-2.7.3/Lib/test/test_support.py.rhbz913732 > Python-2.7.3/Lib/test/ > - if hasattr(socket, 'SO_REUSEPORT'): > + if hasattr(socket, 'SO_REUSEPORT') \ > + and 'WITHIN_PYTHON_RPM_BUILD' not in os.environ: # > rhbz#913732 > - if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) == 1: > - raise TestFailed("tests should never set the SO_REUSEPORT > " \ > - "socket option on TCP/IP sockets!") > + try: > + if sock.getsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT) > == 1: > + raise TestFailed("tests should never set the > SO_REUSEPORT " \ > + "socket option on TCP/IP sockets!") > diff --git a/python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL- > module.patch b/python/patches/00185-CVE-2013-4238-hostname-check-bypass-in- > SSL-module.patch > deleted file mode 100644 > index e215589..0000000 > --- a/python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL- > module.patch > +++ /dev/null > @@ -1,247 +0,0 @@ > -diff -r 9ddc63c039ba Lib/test/nullbytecert.pem > ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 > -+++ b/Lib/test/nullbytecert.pem Sun Aug 11 18:13:17 2013 +0200 > -@@ -0,0 +1,90 @@ > -+Certificate: > -+ Data: > -+ Version: 3 (0x2) > -+ Serial Number: 0 (0x0) > -+ Signature Algorithm: sha1WithRSAEncryption > -+ Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, > OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=pyt > hon-dev@python.org > -+ Validity > -+ Not Before: Aug 7 13:11:52 2013 GMT > -+ Not After : Aug 7 13:12:52 2013 GMT > -+ Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, > OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=pyt > hon-dev@python.org > -+ Subject Public Key Info: > -+ Public Key Algorithm: rsaEncryption > -+ Public-Key: (2048 bit) > -+ Modulus: > -+ 00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3: > -+ 03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97: > -+ 16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2: > -+ 88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1: > -+ 32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4: > -+ 56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8: > -+ a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02: > -+ 45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75: > -+ ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91: > -+ 90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d: > -+ 7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30: > -+ 68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7: > -+ f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12: > -+ f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5: > -+ ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb: > -+ d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f: > -+ 9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da: > -+ 2f:85 > -+ Exponent: 65537 (0x10001) > -+ X509v3 extensions: > -+ X509v3 Basic Constraints: critical > -+ CA:FALSE > -+ X509v3 Subject Key Identifier: > -+ 88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C > -+ X509v3 Key Usage: > -+ Digital Signature, Non Repudiation, Key Encipherment > -+ X509v3 Subject Alternative Name: > -+ ************************************************************ > * > -+ WARNING: The values for DNS, email and URI are WRONG. > OpenSSL > -+ doesn't print the text after a NULL byte. > -+ ************************************************************ > * > -+ DNS:altnull.python.org, email:null@python.org, URI:http://nu > ll.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1 > -+ Signature Algorithm: sha1WithRSAEncryption > -+ ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5: > -+ a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44: > -+ 3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37: > -+ 86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3: > -+ 56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86: > -+ de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac: > -+ 3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4: > -+ 60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60: > -+ d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5: > -+ 25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60: > -+ 1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6: > -+ 4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d: > -+ 0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e: > -+ 5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6: > -+ c1:ca:a9:94 > -+-----BEGIN CERTIFICATE----- > -+MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx > -+DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ > -+eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg > -+RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y > -+ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw > -+NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI > -+DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv > -+ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt > -+ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq > -+hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB > -+BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j > -+pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P > -+vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv > -+KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA > -+oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL > -+08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV > -+HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E > -+BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu > -+Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251 > -+bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA > -+AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9 > -+i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j > -+HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk > -+kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx > -+VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW > -+RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ= > -+-----END CERTIFICATE----- > -diff -r 9ddc63c039ba Lib/test/test_ssl.py > ---- a/Lib/test/test_ssl.py Sun Aug 11 13:04:50 2013 +0300 > -+++ b/Lib/test/test_ssl.py Sun Aug 11 18:13:17 2013 +0200 > -@@ -25,6 +25,7 @@ > - HOST = test_support.HOST > - CERTFILE = None > - SVN_PYTHON_ORG_ROOT_CERT = None > -+NULLBYTECERT = None > - > - def handle_error(prefix): > - exc_format = ' '.join(traceback.format_exception(*sys.exc_info())) > -@@ -123,6 +124,27 @@ > - ('DNS', 'projects.forum.nokia.com')) > - ) > - > -+ def test_parse_cert_CVE_2013_4073(self): > -+ p = ssl._ssl._test_decode_cert(NULLBYTECERT) > -+ if test_support.verbose: > -+ sys.stdout.write("\n" + pprint.pformat(p) + "\n") > -+ subject = ((('countryName', 'US'),), > -+ (('stateOrProvinceName', 'Oregon'),), > -+ (('localityName', 'Beaverton'),), > -+ (('organizationName', 'Python Software Foundation'),), > -+ (('organizationalUnitName', 'Python Core Development'),), > -+ (('commonName', 'null.python.org\x00example.org'),), > -+ (('emailAddress', 'python-dev@python.org'),)) > -+ self.assertEqual(p['subject'], subject) > -+ self.assertEqual(p['issuer'], subject) > -+ self.assertEqual(p['subjectAltName'], > -+ (('DNS', 'altnull.python.org\x00example.com'), > -+ ('email', 'null@python.org\x00user@example.org'), > -+ ('URI', 'http://null.python.org\x00http://example.o > rg'), > -+ ('IP Address', '192.0.2.1'), > -+ ('IP Address', '2001:DB8:0:0:0:0:0:1\n')) > -+ ) > -+ > - def test_DER_to_PEM(self): > - with open(SVN_PYTHON_ORG_ROOT_CERT, 'r') as f: > - pem = f.read() > -@@ -1360,7 +1382,7 @@ > - > - > - def test_main(verbose=False): > -- global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT > -+ global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT, NULLBYTECERT > - CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir, > - "keycert.pem") > - SVN_PYTHON_ORG_ROOT_CERT = os.path.join( > -@@ -1368,10 +1390,13 @@ > - "https_svn_python_org_root.pem") > - NOKIACERT = os.path.join(os.path.dirname(__file__) or os.curdir, > - "nokia.pem") > -+ NULLBYTECERT = os.path.join(os.path.dirname(__file__) or os.curdir, > -+ "nullbytecert.pem") > - > - if (not os.path.exists(CERTFILE) or > - not os.path.exists(SVN_PYTHON_ORG_ROOT_CERT) or > -- not os.path.exists(NOKIACERT)): > -+ not os.path.exists(NOKIACERT) or > -+ not os.path.exists(NULLBYTECERT)): > - raise test_support.TestFailed("Can't read certificate files!") > - > - tests = [BasicTests, BasicSocketTests] > -diff -r 9ddc63c039ba Modules/_ssl.c > ---- a/Modules/_ssl.c Sun Aug 11 13:04:50 2013 +0300 > -+++ b/Modules/_ssl.c Sun Aug 11 18:13:17 2013 +0200 > -@@ -741,8 +741,13 @@ > - > - /* get a rendering of each name in the set of names */ > - > -+ int gntype; > -+ ASN1_STRING *as = NULL; > -+ > - name = sk_GENERAL_NAME_value(names, j); > -- if (name->type == GEN_DIRNAME) { > -+ gntype = name-> type; > -+ switch (gntype) { > -+ case GEN_DIRNAME: > - > - /* we special-case DirName as a tuple of tuples of > attributes */ > - > -@@ -764,11 +769,61 @@ > - goto fail; > - } > - PyTuple_SET_ITEM(t, 1, v); > -+ break; > - > -- } else { > -+ case GEN_EMAIL: > -+ case GEN_DNS: > -+ case GEN_URI: > -+ /* GENERAL_NAME_print() doesn't handle NUL bytes in > ASN1_string > -+ correctly. */ > -+ t = PyTuple_New(2); > -+ if (t == NULL) > -+ goto fail; > -+ switch (gntype) { > -+ case GEN_EMAIL: > -+ v = PyUnicode_FromString("email"); > -+ as = name->d.rfc822Name; > -+ break; > -+ case GEN_DNS: > -+ v = PyUnicode_FromString("DNS"); > -+ as = name->d.dNSName; > -+ break; > -+ case GEN_URI: > -+ v = PyUnicode_FromString("URI"); > -+ as = name->d.uniformResourceIdentifier; > -+ break; > -+ } > -+ if (v == NULL) { > -+ Py_DECREF(t); > -+ goto fail; > -+ } > -+ PyTuple_SET_ITEM(t, 0, v); > -+ v = PyString_FromStringAndSize((char *)ASN1_STRING_data(as), > -+ ASN1_STRING_length(as)); > -+ if (v == NULL) { > -+ Py_DECREF(t); > -+ goto fail; > -+ } > -+ PyTuple_SET_ITEM(t, 1, v); > -+ break; > - > -+ default: > - /* for everything else, we use the OpenSSL print form */ > -- > -+ switch (gntype) { > -+ /* check for new general name type */ > -+ case GEN_OTHERNAME: > -+ case GEN_X400: > -+ case GEN_EDIPARTY: > -+ case GEN_IPADD: > -+ case GEN_RID: > -+ break; > -+ default: > -+ if (PyErr_Warn(PyExc_RuntimeWarning, > -+ "Unknown general name type") == -1) { > -+ goto fail; > -+ } > -+ break; > -+ } > - (void) BIO_reset(biobuf); > - GENERAL_NAME_print(biobuf, name); > - len = BIO_gets(biobuf, buf, sizeof(buf)-1); > -@@ -794,6 +849,7 @@ > - goto fail; > - } > - PyTuple_SET_ITEM(t, 1, v); > -+ break; > - } > - > - /* and add that rendering to the list */ > diff --git a/python/patches/00186-memory-leak-marshalc.patch > b/python/patches/00186-memory-leak-marshalc.patch > deleted file mode 100644 > index 19fb175..0000000 > --- a/python/patches/00186-memory-leak-marshalc.patch > +++ /dev/null > @@ -1,57 +0,0 @@ > ---- Python-2.7.5/Python/marshal.c 2013-05-12 05:32:53.000000000 +0200 > -+++ /home/rkuska/hg/cpython/Python/marshal.c 2013-07-18 > 10:33:26.392486235 +0200 > -@@ -88,7 +88,7 @@ > - } > - > - static void > --w_string(char *s, Py_ssize_t n, WFILE *p) > -+w_string(const char *s, Py_ssize_t n, WFILE *p) > - { > - if (p->fp != NULL) { > - fwrite(s, 1, n, p->fp); > -@@ -141,6 +141,13 @@ > - # define W_SIZE w_long > - #endif > - > -+static void > -+w_pstring(const char *s, Py_ssize_t n, WFILE *p) > -+{ > -+ W_SIZE(n, p); > -+ w_string(s, n, p); > -+} > -+ > - /* We assume that Python longs are stored internally in base some power of > - 2**15; for the sake of portability we'll always read and write them in > base > - exactly 2**15. */ > -@@ -338,9 +345,7 @@ > - else { > - w_byte(TYPE_STRING, p); > - } > -- n = PyString_GET_SIZE(v); > -- W_SIZE(n, p); > -- w_string(PyString_AS_STRING(v), n, p); > -+ w_pstring(PyBytes_AS_STRING(v), PyString_GET_SIZE(v), p); > - } > - #ifdef Py_USING_UNICODE > - else if (PyUnicode_CheckExact(v)) { > -@@ -352,9 +357,7 @@ > - return; > - } > - w_byte(TYPE_UNICODE, p); > -- n = PyString_GET_SIZE(utf8); > -- W_SIZE(n, p); > -- w_string(PyString_AS_STRING(utf8), n, p); > -+ w_pstring(PyString_AS_STRING(utf8), PyString_GET_SIZE(utf8), p); > - Py_DECREF(utf8); > - } > - #endif > -@@ -441,8 +444,7 @@ > - PyBufferProcs *pb = v->ob_type->tp_as_buffer; > - w_byte(TYPE_STRING, p); > - n = (*pb->bf_getreadbuffer)(v, 0, (void **)&s); > -- W_SIZE(n, p); > -- w_string(s, n, p); > -+ w_pstring(s, n, p); > - } > - else { > - w_byte(TYPE_UNKNOWN, p); > diff --git a/python/patches/05000-autotool-intermediates.patch > b/python/patches/05000-autotool-intermediates.patch > index cfedc25..dfe0257 100644 > --- a/python/patches/05000-autotool-intermediates.patch > +++ b/python/patches/05000-autotool-intermediates.patch > @@ -43,15 +43,6 @@ diff -up ./configure.autotool-intermediates ./configure > --with-wctype-functions use wctype.h functions > --with-fpectl enable SIGFPE catching > --with-libm=STRING math library > -@@ -5171,7 +5181,7 @@ esac > - $as_echo_n "checking LIBRARY... " >&6; } > - if test -z "$LIBRARY" > - then > -- LIBRARY='libpython$(VERSION).a' > -+ LIBRARY='libpython$(VERSION)$(DEBUG_EXT).a' > - fi > - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBRARY" >&5 > - $as_echo "$LIBRARY" >&6; } > @@ -5343,8 +5353,8 @@ $as_echo "#define Py_ENABLE_SHARED 1" >> > INSTSONAME="$LDLIBRARY".$SOVERSION > ;; > @@ -60,7 +51,7 @@ diff -up ./configure.autotool-intermediates ./configure > - BLDLIBRARY='-L. -lpython$(VERSION)' > + LDLIBRARY='libpython$(VERSION)$(DEBUG_EXT).so' > + BLDLIBRARY='-L. -lpython$(VERSION)$(DEBUG_EXT)' > - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} > + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PA > TH}} > case $ac_sys_system in > FreeBSD*) > @@ -5367,7 +5377,7 @@ $as_echo "#define Py_ENABLE_SHARED 1" >> > @@ -69,7 +60,7 @@ diff -up ./configure.autotool-intermediates ./configure > LDLIBRARY='libpython$(VERSION).so' > - BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)' > + BLDLIBRARY='-L. -lpython$(VERSION)' > - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} > + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PA > TH}} > ;; > atheos*) > @@ -5894,6 +5904,14 @@ $as_echo "no" >&6; } > diff --git a/python/patches/python-2.5.1-plural-fix.patch > b/python/patches/python-2.5.1-plural-fix.patch > index 040adaf..5002cb2 100644 > --- a/python/patches/python-2.5.1-plural-fix.patch > +++ b/python/patches/python-2.5.1-plural-fix.patch > @@ -7,6 +7,6 @@ diff -up Python-2.5.1/Lib/gettext.py.plural Python- > 2.5.1/Lib/gettext.py > continue > + if item.startswith("#"): > + continue > + k = v = None > if ':' in item: > k, v = item.split(':', 1) > - k = k.strip().lower() > diff --git a/python/patches/python-2.6-rpath.patch b/python/patches/python- > 2.6-rpath.patch > index 43e3ec4..33d7cf6 100644 > --- a/python/patches/python-2.6-rpath.patch > +++ b/python/patches/python-2.6-rpath.patch > @@ -7,6 +7,6 @@ diff -up Python-2.6/configure.ac.rpath Python-2.6/configure.ac > LDLIBRARY='libpython$(VERSION).so' > - BLDLIBRARY='-rpath $(LIBDIR) -L. -lpython$(VERSION)' > + BLDLIBRARY='-L. -lpython$(VERSION)' > - RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH} > + RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PA > TH}} > ;; > atheos*) > diff --git a/python/patches/python-2.7rc1-binutils-no-dep.patch > b/python/patches/python-2.7rc1-binutils-no-dep.patch > deleted file mode 100644 > index ee6157c..0000000 > --- a/python/patches/python-2.7rc1-binutils-no-dep.patch > +++ /dev/null > @@ -1,14 +0,0 @@ > -diff -up Python-2.7rc1/Lib/ctypes/util.py.binutils-no-dep Python- > 2.7rc1/Lib/ctypes/util.py > ---- Python-2.7rc1/Lib/ctypes/util.py.binutils-no-dep 2010-03-15 > 09:42:23.000000000 -0400 > -+++ Python-2.7rc1/Lib/ctypes/util.py 2010-06-06 05:03:02.155975210 > -0400 > -@@ -140,7 +140,9 @@ elif os.name == "posix": > - dump = f.read() > - rv = f.close() > - if rv == 10: > -- raise OSError, 'objdump command not found' > -+ return os.path.basename(f) # This is good for GLibc, I > think, > -+ # and a dep on binutils is big > (for > -+ # live CDs). > - f = os.popen(cmd) > - try: > - data = f.read() > diff --git a/python/python-2.7.12-lib64.patch b/python/python-2.7.12- > lib64.patch > new file mode 100644 > index 0000000..00c835c > --- /dev/null > +++ b/python/python-2.7.12-lib64.patch > @@ -0,0 +1,184 @@ > +diff --git a/Lib/distutils/command/install.py > b/Lib/distutils/command/install.py > +index b9f1c6c..7b23714 100644 > +--- a/Lib/distutils/command/install.py > ++++ b/Lib/distutils/command/install.py > +@@ -42,14 +42,14 @@ else: > + INSTALL_SCHEMES = { > + 'unix_prefix': { > + 'purelib': '$base/lib/python$py_version_short/site-packages', > +- 'platlib': '$platbase/lib/python$py_version_short/site-packages', > ++ 'platlib': '$platbase/lib64/python$py_version_short/site-packages', > + 'headers': '$base/include/python$py_version_short/$dist_name', > + 'scripts': '$base/bin', > + 'data' : '$base', > + }, > + 'unix_home': { > + 'purelib': '$base/lib/python', > +- 'platlib': '$base/lib/python', > ++ 'platlib': '$base/lib64/python', > + 'headers': '$base/include/python/$dist_name', > + 'scripts': '$base/bin', > + 'data' : '$base', > +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py > +index 068d1ba..3e7f077 100644 > +--- a/Lib/distutils/sysconfig.py > ++++ b/Lib/distutils/sysconfig.py > +@@ -119,8 +119,12 @@ def get_python_lib(plat_specific=0, standard_lib=0, > prefix=None): > + prefix = plat_specific and EXEC_PREFIX or PREFIX > + > + if os.name == "posix": > ++ if plat_specific or standard_lib: > ++ lib = "lib64" > ++ else: > ++ lib = "lib" > + libpython = os.path.join(prefix, > +- "lib", "python" + get_python_version()) > ++ lib, "python" + get_python_version()) > + if standard_lib: > + return libpython > + else: > +diff --git a/Lib/site.py b/Lib/site.py > +index e8433b4..e8e6b50 100644 > +--- a/Lib/site.py > ++++ b/Lib/site.py > +@@ -288,12 +288,16 @@ def getsitepackages(): > + if sys.platform in ('os2emx', 'riscos'): > + sitepackages.append(os.path.join(prefix, "Lib", "site- > packages")) > + elif os.sep == '/': > ++ sitepackages.append(os.path.join(prefix, "lib64", > ++ "python" + sys.version[:3], > ++ "site-packages")) > + sitepackages.append(os.path.join(prefix, "lib", > + "python" + sys.version[:3], > + "site-packages")) > + sitepackages.append(os.path.join(prefix, "lib", "site-python")) > + else: > + sitepackages.append(prefix) > ++ sitepackages.append(os.path.join(prefix, "lib64", "site- > packages")) > + sitepackages.append(os.path.join(prefix, "lib", "site- > packages")) > + if sys.platform == "darwin": > + # for framework builds *only* we add the standard Apple > +diff --git a/Lib/test/test_site.py b/Lib/test/test_site.py > +index 78c4809..3b9e74d 100644 > +--- a/Lib/test/test_site.py > ++++ b/Lib/test/test_site.py > +@@ -246,17 +246,20 @@ class HelperFunctionsTests(unittest.TestCase): > + self.assertEqual(dirs[2], wanted) > + elif os.sep == '/': > + # OS X non-framwework builds, Linux, FreeBSD, etc > +- self.assertEqual(len(dirs), 2) > +- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], > ++ self.assertEqual(len(dirs), 3) > ++ wanted = os.path.join('xoxo', 'lib64', 'python' + > sys.version[:3], > + 'site-packages') > + self.assertEqual(dirs[0], wanted) > +- wanted = os.path.join('xoxo', 'lib', 'site-python') > ++ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], > ++ 'site-packages') > + self.assertEqual(dirs[1], wanted) > ++ wanted = os.path.join('xoxo', 'lib', 'site-python') > ++ self.assertEqual(dirs[2], wanted) > + else: > + # other platforms > + self.assertEqual(len(dirs), 2) > + self.assertEqual(dirs[0], 'xoxo') > +- wanted = os.path.join('xoxo', 'lib', 'site-packages') > ++ wanted = os.path.join('xoxo', 'lib64', 'site-packages') > + self.assertEqual(dirs[1], wanted) > + > + class PthFile(object): > +diff --git a/Makefile.pre.in b/Makefile.pre.in > +index 5741a4c..0faa5c5 100644 > +--- a/Makefile.pre.in > ++++ b/Makefile.pre.in > +@@ -111,7 +111,7 @@ LIBDIR= @libdir@ > + MANDIR= @mandir@ > + INCLUDEDIR= @includedir@ > + CONFINCLUDEDIR= $(exec_prefix)/include > +-SCRIPTDIR= $(prefix)/lib > ++SCRIPTDIR= $(prefix)/lib64 > + > + # Detailed destination directories > + BINLIBDEST= $(LIBDIR)/python$(VERSION) > +diff --git a/Modules/Setup.dist b/Modules/Setup.dist > +index c70a0d6..051fd41 100644 > +--- a/Modules/Setup.dist > ++++ b/Modules/Setup.dist > +@@ -416,7 +416,7 @@ gdbm gdbmmodule.c -lgdbm > + # Edit the variables DB and DBLIBVERto point to the db top directory > + # and the subdirectory of PORT where you built it. > + DBINC=/usr/include/libdb > +-DBLIB=/usr/lib > ++DBLIB=/usr/lib64 > + _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb > + > + # Historical Berkeley DB 1.85 > +@@ -462,7 +462,7 @@ cPickle cPickle.c > + # Andrew Kuchling's zlib module. > + # This require zlib 1.1.3 (or later). > + # See http://www.gzip.org/zlib/ > +-zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz > ++zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz > + > + # Interface to the Expat XML parser > + # > +diff --git a/Modules/getpath.c b/Modules/getpath.c > +index 428684c..9ef6711 100644 > +--- a/Modules/getpath.c > ++++ b/Modules/getpath.c > +@@ -108,7 +108,7 @@ static char prefix[MAXPATHLEN+1]; > + static char exec_prefix[MAXPATHLEN+1]; > + static char progpath[MAXPATHLEN+1]; > + static char *module_search_path = NULL; > +-static char lib_python[] = "lib/python" VERSION; > ++static char lib_python[] = "lib64/python" VERSION; > + > + static void > + reduce(char *dir) > +@@ -550,7 +550,7 @@ calculate_path(void) > + fprintf(stderr, > + "Could not find platform dependent libraries > <exec_prefix>\n"); > + strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); > +- joinpath(exec_prefix, "lib/lib-dynload"); > ++ joinpath(exec_prefix, "lib64/lib-dynload"); > + } > + /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ > + > +diff --git a/setup.py b/setup.py > +index 55c4f5d..19efe82 100644 > +--- a/setup.py > ++++ b/setup.py > +@@ -456,7 +456,7 @@ class PyBuildExt(build_ext): > + def detect_modules(self): > + # Ensure that /usr/local is always used > + if not cross_compiling: > +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') > ++ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') > + add_dir_to_list(self.compiler.include_dirs, > '/usr/local/include') > + if cross_compiling: > + self.add_gcc_paths() > +@@ -782,11 +782,11 @@ class PyBuildExt(build_ext): > + elif curses_library: > + readline_libs.append(curses_library) > + elif self.compiler.find_library_file(lib_dirs + > +- ['/usr/lib/termcap'], > ++ ['/usr/lib64/termcap'], > + 'termcap'): > + readline_libs.append('termcap') > + exts.append( Extension('readline', ['readline.c'], > +- library_dirs=['/usr/lib/termcap'], > ++ library_dirs=['/usr/lib64/termcap'], > + extra_link_args=readline_extra_link_args, > + libraries=readline_libs) ) > + else: > +@@ -821,8 +821,8 @@ class PyBuildExt(build_ext): > + if krb5_h: > + ssl_incs += krb5_h > + ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, > +- ['/usr/local/ssl/lib', > +- '/usr/contrib/ssl/lib/' > ++ ['/usr/local/ssl/lib64', > ++ '/usr/contrib/ssl/lib64/' > + ] ) > + > + if (ssl_incs is not None and > diff --git a/python/python-2.7.3-lib64.patch b/python/python-2.7.3-lib64.patch > deleted file mode 100644 > index 71f32c5..0000000 > --- a/python/python-2.7.3-lib64.patch > +++ /dev/null > @@ -1,196 +0,0 @@ > -diff -up Python-2.7.3/Lib/distutils/command/install.py.lib64 Python- > 2.7.3/Lib/distutils/command/install.py > ---- Python-2.7.3/Lib/distutils/command/install.py.lib64 2012-04-09 > 19:07:29.000000000 -0400 > -+++ Python-2.7.3/Lib/distutils/command/install.py 2013-02-19 > 13:58:20.446015129 -0500 > -@@ -42,14 +42,14 @@ else: > - INSTALL_SCHEMES = { > - 'unix_prefix': { > - 'purelib': '$base/lib/python$py_version_short/site-packages', > -- 'platlib': '$platbase/lib/python$py_version_short/site-packages', > -+ 'platlib': '$platbase/lib64/python$py_version_short/site-packages', > - 'headers': '$base/include/python$py_version_short/$dist_name', > - 'scripts': '$base/bin', > - 'data' : '$base', > - }, > - 'unix_home': { > - 'purelib': '$base/lib/python', > -- 'platlib': '$base/lib/python', > -+ 'platlib': '$base/lib64/python', > - 'headers': '$base/include/python/$dist_name', > - 'scripts': '$base/bin', > - 'data' : '$base', > -diff -up Python-2.7.3/Lib/distutils/sysconfig.py.lib64 Python- > 2.7.3/Lib/distutils/sysconfig.py > ---- Python-2.7.3/Lib/distutils/sysconfig.py.lib64 2012-04-09 > 19:07:29.000000000 -0400 > -+++ Python-2.7.3/Lib/distutils/sysconfig.py 2013-02-19 > 13:58:20.446015129 -0500 > -@@ -114,8 +114,12 @@ def get_python_lib(plat_specific=0, stan > - prefix = plat_specific and EXEC_PREFIX or PREFIX > - > - if os.name == "posix": > -+ if plat_specific or standard_lib: > -+ lib = "lib64" > -+ else: > -+ lib = "lib" > - libpython = os.path.join(prefix, > -- "lib", "python" + get_python_version()) > -+ lib, "python" + get_python_version()) > - if standard_lib: > - return libpython > - else: > -diff -up Python-2.7.3/Lib/site.py.lib64 Python-2.7.3/Lib/site.py > ---- Python-2.7.3/Lib/site.py.lib64 2012-04-09 19:07:31.000000000 -0400 > -+++ Python-2.7.3/Lib/site.py 2013-02-19 13:58:20.447015128 -0500 > -@@ -300,12 +300,16 @@ def getsitepackages(): > - if sys.platform in ('os2emx', 'riscos'): > - sitepackages.append(os.path.join(prefix, "Lib", "site- > packages")) > - elif os.sep == '/': > -+ sitepackages.append(os.path.join(prefix, "lib64", > -+ "python" + sys.version[:3], > -+ "site-packages")) > - sitepackages.append(os.path.join(prefix, "lib", > - "python" + sys.version[:3], > - "site-packages")) > - sitepackages.append(os.path.join(prefix, "lib", "site-python")) > - else: > - sitepackages.append(prefix) > -+ sitepackages.append(os.path.join(prefix, "lib64", "site- > packages")) > - sitepackages.append(os.path.join(prefix, "lib", "site- > packages")) > - if sys.platform == "darwin": > - # for framework builds *only* we add the standard Apple > -diff -up Python-2.7.3/Lib/test/test_site.py.lib64 Python- > 2.7.3/Lib/test/test_site.py > ---- Python-2.7.3/Lib/test/test_site.py.lib64 2012-04-09 > 19:07:32.000000000 -0400 > -+++ Python-2.7.3/Lib/test/test_site.py 2013-02-19 13:58:20.447015128 > -0500 > -@@ -241,17 +241,20 @@ class HelperFunctionsTests(unittest.Test > - self.assertEqual(dirs[2], wanted) > - elif os.sep == '/': > - # OS X non-framwework builds, Linux, FreeBSD, etc > -- self.assertEqual(len(dirs), 2) > -- wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], > -+ self.assertEqual(len(dirs), 3) > -+ wanted = os.path.join('xoxo', 'lib64', 'python' + > sys.version[:3], > - 'site-packages') > - self.assertEqual(dirs[0], wanted) > -- wanted = os.path.join('xoxo', 'lib', 'site-python') > -+ wanted = os.path.join('xoxo', 'lib', 'python' + sys.version[:3], > -+ 'site-packages') > - self.assertEqual(dirs[1], wanted) > -+ wanted = os.path.join('xoxo', 'lib', 'site-python') > -+ self.assertEqual(dirs[2], wanted) > - else: > - # other platforms > - self.assertEqual(len(dirs), 2) > - self.assertEqual(dirs[0], 'xoxo') > -- wanted = os.path.join('xoxo', 'lib', 'site-packages') > -+ wanted = os.path.join('xoxo', 'lib64', 'site-packages') > - self.assertEqual(dirs[1], wanted) > - > - class PthFile(object): > -diff -up Python-2.7.3/Makefile.pre.in.lib64 Python-2.7.3/Makefile.pre.in > ---- Python-2.7.3/Makefile.pre.in.lib64 2013-02-19 13:58:20.435015131 > -0500 > -+++ Python-2.7.3/Makefile.pre.in 2013-02-19 13:58:20.447015128 -0500 > -@@ -97,7 +97,7 @@ LIBDIR= @libdir@ > - MANDIR= @mandir@ > - INCLUDEDIR= @includedir@ > - CONFINCLUDEDIR= $(exec_prefix)/include > --SCRIPTDIR= $(prefix)/lib > -+SCRIPTDIR= $(prefix)/lib64 > - > - # Detailed destination directories > - BINLIBDEST= $(LIBDIR)/python$(VERSION) > -diff -up Python-2.7.3/Modules/getpath.c.lib64 Python-2.7.3/Modules/getpath.c > ---- Python-2.7.3/Modules/getpath.c.lib64 2012-04-09 19:07:34.000000000 > -0400 > -+++ Python-2.7.3/Modules/getpath.c 2013-02-19 13:58:20.448015128 -0500 > -@@ -117,8 +117,8 @@ > - #endif > - > - #ifndef PYTHONPATH > --#define PYTHONPATH PREFIX "/lib/python" VERSION ":" \ > -- EXEC_PREFIX "/lib/python" VERSION "/lib-dynload" > -+#define PYTHONPATH PREFIX "/lib64/python" VERSION ":" \ > -+ EXEC_PREFIX "/lib64/python" VERSION "/lib-dynload" > - #endif > - > - #ifndef LANDMARK > -@@ -129,7 +129,7 @@ static char prefix[MAXPATHLEN+1]; > - static char exec_prefix[MAXPATHLEN+1]; > - static char progpath[MAXPATHLEN+1]; > - static char *module_search_path = NULL; > --static char lib_python[] = "lib/python" VERSION; > -+static char lib_python[] = "lib64/python" VERSION; > - > - static void > - reduce(char *dir) > -@@ -528,7 +528,7 @@ calculate_path(void) > - } > - else > - strncpy(zip_path, PREFIX, MAXPATHLEN); > -- joinpath(zip_path, "lib/python00.zip"); > -+ joinpath(zip_path, "lib64/python00.zip"); > - bufsz = strlen(zip_path); /* Replace "00" with version */ > - zip_path[bufsz - 6] = VERSION[0]; > - zip_path[bufsz - 5] = VERSION[2]; > -@@ -538,7 +538,7 @@ calculate_path(void) > - fprintf(stderr, > - "Could not find platform dependent libraries > <exec_prefix>\n"); > - strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN); > -- joinpath(exec_prefix, "lib/lib-dynload"); > -+ joinpath(exec_prefix, "lib64/lib-dynload"); > - } > - /* If we found EXEC_PREFIX do *not* reduce it! (Yet.) */ > - > -diff -up Python-2.7.3/Modules/Setup.dist.lib64 Python- > 2.7.3/Modules/Setup.dist > ---- Python-2.7.3/Modules/Setup.dist.lib64 2013-02-19 > 13:58:20.442015131 -0500 > -+++ Python-2.7.3/Modules/Setup.dist 2013-02-19 14:02:25.255998391 > -0500 > -@@ -413,7 +413,7 @@ gdbm gdbmmodule.c -lgdbm > - # Edit the variables DB and DBLIBVERto point to the db top directory > - # and the subdirectory of PORT where you built it. > - DBINC=/usr/include/libdb > --DBLIB=/usr/lib > -+DBLIB=/usr/lib64 > - _bsddb _bsddb.c -I$(DBINC) -L$(DBLIB) -ldb > - > - # Historical Berkeley DB 1.85 > -@@ -459,7 +459,7 @@ cPickle cPickle.c > - # Andrew Kuchling's zlib module. > - # This require zlib 1.1.3 (or later). > - # See http://www.gzip.org/zlib/ > --zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz > -+zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib64 -lz > - > - # Interface to the Expat XML parser > - # > -diff -up Python-2.7.3/setup.py.lib64 Python-2.7.3/setup.py > ---- Python-2.7.3/setup.py.lib64 2012-04-09 19:07:36.000000000 -0400 > -+++ Python-2.7.3/setup.py 2013-02-19 13:58:20.449015129 -0500 > -@@ -369,7 +369,7 @@ class PyBuildExt(build_ext): > - > - def detect_modules(self): > - # Ensure that /usr/local is always used > -- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') > -+ add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib64') > - add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') > - self.add_gcc_paths() > - self.add_multiarch_paths() > -@@ -677,11 +677,11 @@ class PyBuildExt(build_ext): > - elif curses_library: > - readline_libs.append(curses_library) > - elif self.compiler.find_library_file(lib_dirs + > -- ['/usr/lib/termcap'], > -+ ['/usr/lib64/termcap'], > - 'termcap'): > - readline_libs.append('termcap') > - exts.append( Extension('readline', ['readline.c'], > -- library_dirs=['/usr/lib/termcap'], > -+ library_dirs=['/usr/lib64/termcap'], > - extra_link_args=readline_extra_link_args, > - libraries=readline_libs) ) > - else: > -@@ -715,8 +715,8 @@ class PyBuildExt(build_ext): > - if krb5_h: > - ssl_incs += krb5_h > - ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs, > -- ['/usr/local/ssl/lib', > -- '/usr/contrib/ssl/lib/' > -+ ['/usr/local/ssl/lib64', > -+ '/usr/contrib/ssl/lib64/' > - ] ) > - > - if (ssl_incs is not None and > diff --git a/python/python.nm b/python/python.nm > index 84704b5..0123eb9 100644 > --- a/python/python.nm > +++ b/python/python.nm > @@ -5,8 +5,8 @@ > > name = python > major_ver = 2.7 > -version = %{major_ver}.5 > -release = 2 > +version = %{major_ver}.12 > +release = 1 > thisapp = Python-%{version} > > groups = Development/Languages > @@ -35,7 +35,6 @@ build > glibc-headers >= 2.16-4 > libdb-devel > libffi-devel > - libselinux-devel > ncurses-devel > openssl-devel > pakfire-builder >= 0.9.23-4 > @@ -51,7 +50,7 @@ build > export OPT = %{CFLAGS} > > if "%{lib}" == "lib64" > - patches += %{DIR_SOURCE}/python-2.7.3-lib64.patch > + patches += %{DIR_SOURCE}/python-2.7.12-lib64.patch > patches += %{DIR_SOURCE}/python-2.7-lib64-sysconfig.patch > end >