]> git.ipfire.org Git - people/stevee/ipfire-3.x.git/commitdiff
python: Update to 2.7.12.
authorStefan Schantl <stefan.schantl@ipfire.org>
Wed, 12 Oct 2016 11:41:12 +0000 (13:41 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 12 Oct 2016 17:29:58 +0000 (18:29 +0100)
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>
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 files changed:
python/patches/00134-fix-COUNT_ALLOCS-failure-in-test_sys.patch
python/patches/00136-skip-tests-of-seeking-stdin-in-rpmbuild.patch
python/patches/00157-uid-gid-overflows.patch
python/patches/00170-gc-assertions.patch
python/patches/00173-workaround-ENOPROTOOPT-in-bind_port.patch
python/patches/00185-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch [deleted file]
python/patches/00186-memory-leak-marshalc.patch [deleted file]
python/patches/05000-autotool-intermediates.patch
python/patches/python-2.5.1-plural-fix.patch
python/patches/python-2.6-rpath.patch
python/patches/python-2.7rc1-binutils-no-dep.patch [deleted file]
python/python-2.7.12-lib64.patch [moved from python/python-2.7.3-lib64.patch with 63% similarity]
python/python.nm

index 38381ef27990f526471891c6198b8fc920f85d56..71e7f6819819756ce72cbcbf6a186d9a0fd5b5e9 100644 (file)
@@ -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'):
index 845fb2a906c24dcc3466af2cf5b95f5a93b4eb5f..4d7626f479d10b7b1cc73aab462cced6b52b24a0 100644 (file)
@@ -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.
index 13546bbf7bedeb303bc710a2afe2bcc1018d118b..a31c98af6677667768c04df03e2330c9c7fab10a 100644 (file)
@@ -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)
  
index 3fb37ff3c6c7c1711ac38511fb2c2e2457361073..f3a0838acdccf570c6e0d7a3cdec2033b50eea37 100644 (file)
@@ -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
index eb34610554fd892a4885657de01c6eb4e6dbf5b9..3e83d67917e5a16e17e9919aee2a8307f1060e77 100644 (file)
@@ -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 (file)
index e215589..0000000
+++ /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=python-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=python-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://null.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.org'),
-+                         ('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 (file)
index 19fb175..0000000
+++ /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);
index cfedc25a03d1e9ff71884d964601f3efed9178d7..dfe02570a330545ce29ce3efe6e71a192229b716 100644 (file)
@@ -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_PATH}}
          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_PATH}}
          ;;
      atheos*)
 @@ -5894,6 +5904,14 @@ $as_echo "no" >&6; }
index 040adaf18084d2c022f3ce9ae072d69d14aad11d..5002cb27e11a1f2a13f2865098016eaf7b09ed34 100644 (file)
@@ -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()
index 43e3ec436e214a72902ef635f1a1b9cf01669f59..33d7cf65e525420f322cc645d057a16f4e4500be 100644 (file)
@@ -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_PATH}}
          ;;
      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 (file)
index ee6157c..0000000
+++ /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()
similarity index 63%
rename from python/python-2.7.3-lib64.patch
rename to python/python-2.7.12-lib64.patch
index 71f32c522bd01149ee9f8440f0771cf4330708c1..00c835c81cce835633a9e48f314c65e6d4522ab7 100644 (file)
@@ -1,6 +1,7 @@
-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
+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': {
@@ -18,10 +19,11 @@ diff -up Python-2.7.3/Lib/distutils/command/install.py.lib64 Python-2.7.3/Lib/di
          '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
+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":
@@ -35,10 +37,11 @@ diff -up Python-2.7.3/Lib/distutils/sysconfig.py.lib64 Python-2.7.3/Lib/distutil
          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():
+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 == '/':
@@ -55,10 +58,11 @@ diff -up Python-2.7.3/Lib/site.py.lib64 Python-2.7.3/Lib/site.py
              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
+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
@@ -70,7 +74,7 @@ diff -up Python-2.7.3/Lib/test/test_site.py.lib64 Python-2.7.3/Lib/test/test_sit
              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')
++                                   'site-packages')
              self.assertEqual(dirs[1], wanted)
 +            wanted = os.path.join('xoxo', 'lib', 'site-python')
 +            self.assertEqual(dirs[2], wanted)
@@ -83,10 +87,11 @@ diff -up Python-2.7.3/Lib/test/test_site.py.lib64 Python-2.7.3/Lib/test/test_sit
              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@
+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
@@ -95,21 +100,33 @@ diff -up Python-2.7.3/Makefile.pre.in.lib64 Python-2.7.3/Makefile.pre.in
  
  # 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
+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
  
- #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
+ # 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
  
- #ifndef LANDMARK
-@@ -129,7 +129,7 @@ static char prefix[MAXPATHLEN+1];
+ # 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;
@@ -118,16 +135,7 @@ diff -up Python-2.7.3/Modules/getpath.c.lib64 Python-2.7.3/Modules/getpath.c
  
  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)
+@@ -550,7 +550,7 @@ calculate_path(void)
              fprintf(stderr,
                  "Could not find platform dependent libraries <exec_prefix>\n");
          strncpy(exec_prefix, EXEC_PREFIX, MAXPATHLEN);
@@ -136,40 +144,20 @@ diff -up Python-2.7.3/Modules/getpath.c.lib64 Python-2.7.3/Modules/getpath.c
      }
      /* 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):
+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
--        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):
+         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 +
@@ -183,7 +171,7 @@ diff -up Python-2.7.3/setup.py.lib64 Python-2.7.3/setup.py
                                     extra_link_args=readline_extra_link_args,
                                     libraries=readline_libs) )
          else:
-@@ -715,8 +715,8 @@ class PyBuildExt(build_ext):
+@@ -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,
index 84704b5b465812235c7245374be1fcf92d0a73ac..0123eb9d48f0a25c83d7fb6f2f993a8bda4b2c93 100644 (file)
@@ -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