Update to Python 3.6.1 release candidate 1
- Remove patches 250, 253, 254 as the changes are already in Python 3.6.1rc1 - Update patch 157 to work with the new Python codebase - Remove README file from site-packages (upstream issue24633) - Rename README to README.rst according to upstream change (upstream PR#2) - Add patch 264 to skip a known test failure on aarch64 (upstream issue29804)
This commit is contained in:
parent
3b36b495e5
commit
aba719b9fe
@ -1,6 +1,8 @@
|
||||
--- Python-3.4.0b1/Lib/test/test_os.py.orig 2013-11-27 12:07:32.368411798 +0100
|
||||
+++ Python-3.4.0b1/Lib/test/test_os.py 2013-11-27 12:12:11.220265174 +0100
|
||||
@@ -1319,30 +1319,36 @@
|
||||
diff --git a/Lib/test/test_os.py b/Lib/test/test_os.py
|
||||
index e9fdb07..ea60e6e 100644
|
||||
--- a/Lib/test/test_os.py
|
||||
+++ b/Lib/test/test_os.py
|
||||
@@ -1723,30 +1723,36 @@ class PosixUidGidTests(unittest.TestCase):
|
||||
def test_setuid(self):
|
||||
if os.getuid() != 0:
|
||||
self.assertRaises(OSError, os.setuid, 0)
|
||||
@ -37,7 +39,7 @@
|
||||
self.assertRaises(OverflowError, os.setreuid, 1<<32, 0)
|
||||
self.assertRaises(OverflowError, os.setreuid, 0, 1<<32)
|
||||
|
||||
@@ -1358,6 +1364,8 @@
|
||||
@@ -1762,6 +1768,8 @@ class PosixUidGidTests(unittest.TestCase):
|
||||
def test_setregid(self):
|
||||
if os.getuid() != 0 and not HAVE_WHEEL_GROUP:
|
||||
self.assertRaises(OSError, os.setregid, 0, 0)
|
||||
@ -46,17 +48,21 @@
|
||||
self.assertRaises(OverflowError, os.setregid, 1<<32, 0)
|
||||
self.assertRaises(OverflowError, os.setregid, 0, 1<<32)
|
||||
|
||||
--- Python-3.4.0b1/Lib/test/test_pwd.py.orig 2013-11-24 21:36:55.000000000 +0100
|
||||
+++ Python-3.4.0b1/Lib/test/test_pwd.py 2013-11-27 12:07:32.369411798 +0100
|
||||
@@ -89,9 +89,9 @@
|
||||
diff --git a/Lib/test/test_pwd.py b/Lib/test/test_pwd.py
|
||||
index ac9cff7..db98159 100644
|
||||
--- a/Lib/test/test_pwd.py
|
||||
+++ b/Lib/test/test_pwd.py
|
||||
@@ -104,11 +104,11 @@ class PwdTest(unittest.TestCase):
|
||||
# In some cases, byuids isn't a complete list of all users in the
|
||||
# system, so if we try to pick a value not in byuids (via a perturbing
|
||||
# loop, say), pwd.getpwuid() might still be able to find data for that
|
||||
- # uid. Using sys.maxint may provoke the same problems, but hopefully
|
||||
+ # uid. Using 2**32 - 2 may provoke the same problems, but hopefully
|
||||
# it will be a more repeatable failure.
|
||||
# Android accepts a very large span of uids including sys.maxsize and
|
||||
# -1; it raises KeyError with 1 or 2 for example.
|
||||
- fakeuid = sys.maxsize
|
||||
+ fakeuid = 2**32 - 2
|
||||
self.assertNotIn(fakeuid, byuids)
|
||||
if not support.is_android:
|
||||
self.assertRaises(KeyError, pwd.getpwuid, fakeuid)
|
||||
|
||||
|
@ -1,171 +0,0 @@
|
||||
diff -r ee1390c9b585 Python/random.c
|
||||
--- a/Python/random.c Wed Jan 04 12:02:30 2017 +0100
|
||||
+++ b/Python/random.c Wed Jan 04 18:32:21 2017 +0100
|
||||
@@ -77,45 +77,8 @@ win32_urandom(unsigned char *buffer, Py_
|
||||
return 0;
|
||||
}
|
||||
|
||||
-/* Issue #25003: Don't use getentropy() on Solaris (available since
|
||||
- * Solaris 11.3), it is blocking whereas os.urandom() should not block. */
|
||||
-#elif defined(HAVE_GETENTROPY) && !defined(sun)
|
||||
-#define PY_GETENTROPY 1
|
||||
-
|
||||
-/* Fill buffer with size pseudo-random bytes generated by getentropy().
|
||||
- Return 0 on success, or raise an exception and return -1 on error.
|
||||
-
|
||||
- If raise is zero, don't raise an exception on error. */
|
||||
-static int
|
||||
-py_getentropy(char *buffer, Py_ssize_t size, int raise)
|
||||
-{
|
||||
- while (size > 0) {
|
||||
- Py_ssize_t len = Py_MIN(size, 256);
|
||||
- int res;
|
||||
+#else /* !MS_WINDOWS */
|
||||
|
||||
- if (raise) {
|
||||
- Py_BEGIN_ALLOW_THREADS
|
||||
- res = getentropy(buffer, len);
|
||||
- Py_END_ALLOW_THREADS
|
||||
- }
|
||||
- else {
|
||||
- res = getentropy(buffer, len);
|
||||
- }
|
||||
-
|
||||
- if (res < 0) {
|
||||
- if (raise) {
|
||||
- PyErr_SetFromErrno(PyExc_OSError);
|
||||
- }
|
||||
- return -1;
|
||||
- }
|
||||
-
|
||||
- buffer += len;
|
||||
- size -= len;
|
||||
- }
|
||||
- return 0;
|
||||
-}
|
||||
-
|
||||
-#else
|
||||
|
||||
#if defined(HAVE_GETRANDOM) || defined(HAVE_GETRANDOM_SYSCALL)
|
||||
#define PY_GETRANDOM 1
|
||||
@@ -217,6 +180,59 @@ py_getrandom(void *buffer, Py_ssize_t si
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
+
|
||||
+/* Issue #25003: Don't use getentropy() on Solaris (available since
|
||||
+ * Solaris 11.3), it is blocking whereas os.urandom() should not block. */
|
||||
+#elif defined(HAVE_GETENTROPY) && !defined(sun)
|
||||
+#define PY_GETENTROPY 1
|
||||
+
|
||||
+/* Fill buffer with size pseudo-random bytes generated by getentropy().
|
||||
+ Return 1 on success, or raise an exception and return -1 on error.
|
||||
+
|
||||
+ If raise is zero, don't raise an exception on error. */
|
||||
+static int
|
||||
+py_getentropy(char *buffer, Py_ssize_t size, int raise)
|
||||
+{
|
||||
+ /* Is getentropy() supported by the running kernel? Set to 0 if
|
||||
+ getentropy() failed with ENOSYS. */
|
||||
+ static int getentropy_works = 1;
|
||||
+
|
||||
+ if (!getentropy_works) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ while (size > 0) {
|
||||
+ Py_ssize_t len = Py_MIN(size, 256);
|
||||
+ int res;
|
||||
+
|
||||
+ if (raise) {
|
||||
+ Py_BEGIN_ALLOW_THREADS
|
||||
+ res = getentropy(buffer, len);
|
||||
+ Py_END_ALLOW_THREADS
|
||||
+ }
|
||||
+ else {
|
||||
+ res = getentropy(buffer, len);
|
||||
+ }
|
||||
+
|
||||
+ if (res < 0) {
|
||||
+ /* ENOSYS: the inner syscall is not supported by the running
|
||||
+ kernel. */
|
||||
+ if (errno == ENOSYS) {
|
||||
+ getentropy_works = 0;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ if (raise) {
|
||||
+ PyErr_SetFromErrno(PyExc_OSError);
|
||||
+ }
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
+ buffer += len;
|
||||
+ size -= len;
|
||||
+ }
|
||||
+ return 1;
|
||||
+}
|
||||
#endif
|
||||
|
||||
static struct {
|
||||
@@ -236,7 +252,7 @@ dev_urandom(char *buffer, Py_ssize_t siz
|
||||
{
|
||||
int fd;
|
||||
Py_ssize_t n;
|
||||
-#ifdef PY_GETRANDOM
|
||||
+#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
|
||||
int res;
|
||||
#endif
|
||||
|
||||
@@ -244,17 +260,20 @@ dev_urandom(char *buffer, Py_ssize_t siz
|
||||
|
||||
#ifdef PY_GETRANDOM
|
||||
res = py_getrandom(buffer, size, blocking, raise);
|
||||
+#elif defined(PY_GETENTROPY)
|
||||
+ res = py_getentropy(buffer, size, raise);
|
||||
+#endif
|
||||
+#if defined(PY_GETRANDOM) || defined(PY_GETENTROPY)
|
||||
if (res < 0) {
|
||||
return -1;
|
||||
}
|
||||
if (res == 1) {
|
||||
return 0;
|
||||
}
|
||||
- /* getrandom() failed with ENOSYS or EPERM,
|
||||
- fall back on reading /dev/urandom */
|
||||
+ /* function failed with ENOSYS or EPERM, fall back on reading
|
||||
+ from /dev/urandom */
|
||||
#endif
|
||||
|
||||
-
|
||||
if (raise) {
|
||||
struct _Py_stat_struct st;
|
||||
|
||||
@@ -349,8 +368,8 @@ dev_urandom_close(void)
|
||||
urandom_cache.fd = -1;
|
||||
}
|
||||
}
|
||||
+#endif /* !MS_WINDOWS */
|
||||
|
||||
-#endif
|
||||
|
||||
/* Fill buffer with pseudo-random bytes generated by a linear congruent
|
||||
generator (LCG):
|
||||
@@ -395,8 +414,6 @@ pyurandom(void *buffer, Py_ssize_t size,
|
||||
|
||||
#ifdef MS_WINDOWS
|
||||
return win32_urandom((unsigned char *)buffer, size, raise);
|
||||
-#elif defined(PY_GETENTROPY)
|
||||
- return py_getentropy(buffer, size, raise);
|
||||
#else
|
||||
return dev_urandom(buffer, size, blocking, raise);
|
||||
#endif
|
||||
@@ -491,8 +508,6 @@ void
|
||||
CryptReleaseContext(hCryptProv, 0);
|
||||
hCryptProv = 0;
|
||||
}
|
||||
-#elif defined(PY_GETENTROPY)
|
||||
- /* nothing to clean */
|
||||
#else
|
||||
dev_urandom_close();
|
||||
#endif
|
@ -1,24 +0,0 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Victor Stinner <victor.stinner@gmail.com>
|
||||
# Date 1483653533 -3600
|
||||
# Node ID fad67c66885f0bd9ebafe2a54f0fa12b5a8fe3bf
|
||||
# Parent 52d671684342cd2dcc804566d4c755634d3210a8
|
||||
Issue #27961: Define HAVE_LONG_LONG as 1.
|
||||
|
||||
Fix backward compatibility issue, HAVE_LONG_LONG was defined but empty, whereas
|
||||
it is defined as 1 in Python 3.5.
|
||||
|
||||
diff --git a/Include/pyport.h b/Include/pyport.h
|
||||
--- a/Include/pyport.h
|
||||
+++ b/Include/pyport.h
|
||||
@@ -39,7 +39,7 @@ Used in: Py_SAFE_DOWNCAST
|
||||
|
||||
// long long is required. Ensure HAVE_LONG_LONG is defined for compatibility.
|
||||
#ifndef HAVE_LONG_LONG
|
||||
-#define HAVE_LONG_LONG
|
||||
+#define HAVE_LONG_LONG 1
|
||||
#endif
|
||||
#ifndef PY_LONG_LONG
|
||||
#define PY_LONG_LONG long long
|
||||
|
@ -1,13 +0,0 @@
|
||||
diff --git a/Modules/_randommodule.c b/Modules/_randommodule.c
|
||||
index 63759d5..0d3282d 100644
|
||||
--- a/Modules/_randommodule.c
|
||||
+++ b/Modules/_randommodule.c
|
||||
@@ -245,7 +245,7 @@ random_seed(RandomObject *self, PyObject *args)
|
||||
return NULL;
|
||||
|
||||
if (arg == NULL || arg == Py_None) {
|
||||
- if (random_seed_urandom(self) >= 0) {
|
||||
+ if (random_seed_urandom(self) < 0) {
|
||||
PyErr_Clear();
|
||||
|
||||
/* Reading system entropy failed, fall back on the worst entropy:
|
@ -151,7 +151,7 @@ index b71bb9f..56867fc 100644
|
||||
@@ -9,8 +9,9 @@ import sys
|
||||
import subprocess
|
||||
import tempfile
|
||||
from test.support import script_helper
|
||||
from test.support import script_helper, is_android
|
||||
-from test.support.script_helper import (spawn_python, kill_python, assert_python_ok,
|
||||
- assert_python_failure)
|
||||
+from test.support.script_helper import (
|
||||
|
12
00264-skip-test-failing-on-aarch64.patch
Normal file
12
00264-skip-test-failing-on-aarch64.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff --git a/Lib/ctypes/test/test_structures.py b/Lib/ctypes/test/test_structures.py
|
||||
index 3eded77..ad7859a 100644
|
||||
--- a/Lib/ctypes/test/test_structures.py
|
||||
+++ b/Lib/ctypes/test/test_structures.py
|
||||
@@ -392,6 +392,7 @@ class StructureTestCase(unittest.TestCase):
|
||||
(1, 0, 0, 0, 0, 0))
|
||||
self.assertRaises(TypeError, lambda: Z(1, 2, 3, 4, 5, 6, 7))
|
||||
|
||||
+ @unittest.skip('Fails on aarch64: http://bugs.python.org/issue29804')
|
||||
def test_pass_by_value(self):
|
||||
# This should mirror the structure in Modules/_ctypes/_ctypes_test.c
|
||||
class X(Structure):
|
52
python3.spec
52
python3.spec
@ -24,6 +24,8 @@
|
||||
# Currently these packages are recommended to have been built before a targeted rebuild after a python abi change:
|
||||
# python-sphinx, pytest, python-requests, cloud-init, dnf, anaconda, abrt.
|
||||
|
||||
# First release cadidate
|
||||
%global prerel rc1
|
||||
|
||||
%global with_rewheel 1
|
||||
|
||||
@ -123,8 +125,8 @@
|
||||
# ==================
|
||||
Summary: Version 3 of the Python programming language aka Python 3000
|
||||
Name: python3
|
||||
Version: %{pybasever}.0
|
||||
Release: 21%{?dist}
|
||||
Version: %{pybasever}.1
|
||||
Release: 0.1.%{?prerel}%{?dist}
|
||||
License: Python
|
||||
Group: Development/Languages
|
||||
|
||||
@ -197,7 +199,7 @@ BuildRequires: python3-pip
|
||||
# Source code and patches
|
||||
# =======================
|
||||
|
||||
Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
|
||||
Source: https://www.python.org/ftp/python/%{version}/Python-%{version}%{?prerel}.tar.xz
|
||||
|
||||
# Supply an RPM macro "py_byte_compile" for the python3-devel subpackage
|
||||
# to enable specfiles to selectively byte-compile individual files and paths
|
||||
@ -412,28 +414,11 @@ Patch243: 00243-fix-mips64-triplet.patch
|
||||
# Not yet fixed upstream: http://bugs.python.org/issue28787
|
||||
Patch249: 00249-fix-out-of-tree-dtrace-builds.patch
|
||||
|
||||
# 00250 #
|
||||
# After glibc-2.24.90, Python 3 failed to start on EL7 kernel
|
||||
# rhbz#1410175: https://bugzilla.redhat.com/show_bug.cgi?id=1410175
|
||||
# http://bugs.python.org/issue29157
|
||||
Patch250: 00250-getentropy.patch
|
||||
|
||||
# 00252
|
||||
# Add executable option to install.py command to make it work for
|
||||
# scripts specified as an entry_points
|
||||
Patch252: 00252-add-executable-option.patch
|
||||
|
||||
# 00253 #
|
||||
# Define HAVE_LONG_LONG as 1 instead of blank for backwards compatibility
|
||||
# Fixed upstream: https://hg.python.org/cpython/rev/fad67c66885f
|
||||
Patch253: 00253-fix-HAVE_LONG_LONG-compatibility.patch
|
||||
|
||||
# 00254 #
|
||||
# Fix error check, so that Random.seed actually uses OS randomness
|
||||
# rhbz#1412275: https://bugzilla.redhat.com/show_bug.cgi?id=1412275
|
||||
# Fixed upstream: https://bugs.python.org/issue29085
|
||||
Patch254: 00254-make-Random.seed-actually-use-OS-randomness.patch
|
||||
|
||||
# 00258 #
|
||||
# Kernel 4.9 introduced some changes to its crypto API
|
||||
# making test_aead_aes_gcm fail, so skipping the test for now
|
||||
@ -470,6 +455,13 @@ Patch262: 00262-pep538_coerce_legacy_c_locale.patch
|
||||
#
|
||||
# https://fedoraproject.org/wiki/SIGs/Python/PythonPatches
|
||||
|
||||
# 00264 #
|
||||
# test_pass_by_value was added in Python 3.6.1 and on aarch64
|
||||
# it is catching an error that was there, but wasn't tested before.
|
||||
# Therefore skipping the test on aarch64 until fixed upstream.
|
||||
# Reported upstream: http://bugs.python.org/issue29804
|
||||
Patch264: 00264-skip-test-failing-on-aarch64.patch
|
||||
|
||||
|
||||
# add correct arch for ppc64/ppc64le
|
||||
# it should be ppc64le-linux-gnu/ppc64-linux-gnu instead powerpc64le-linux-gnu/powerpc64-linux-gnu
|
||||
@ -705,15 +697,16 @@ sed -r -i s/'_PIP_VERSION = "[0-9.]+"'/'_PIP_VERSION = "%{pip_version}"'/ Lib/en
|
||||
%patch206 -p1
|
||||
%patch243 -p1
|
||||
%patch249 -p1
|
||||
%patch250 -p1
|
||||
%patch252 -p1
|
||||
%patch253 -p1
|
||||
%patch254 -p1
|
||||
%patch258 -p1
|
||||
%patch260 -p1
|
||||
%patch261 -p1
|
||||
%patch262 -p1
|
||||
|
||||
%ifarch aarch64
|
||||
%patch264 -p1
|
||||
%endif
|
||||
|
||||
# Currently (2010-01-15), http://docs.python.org/library is for 2.6, and there
|
||||
# are many differences between 2.6 and the Python 3 library.
|
||||
#
|
||||
@ -1219,7 +1212,7 @@ fi
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
%license LICENSE
|
||||
%doc README
|
||||
%doc README.rst
|
||||
%{_bindir}/pydoc*
|
||||
%{_bindir}/python3
|
||||
%{_bindir}/python%{pybasever}
|
||||
@ -1231,7 +1224,7 @@ fi
|
||||
%files libs
|
||||
%defattr(-,root,root,-)
|
||||
%license LICENSE
|
||||
%doc README
|
||||
%doc README.rst
|
||||
|
||||
%{pylibdir}/lib2to3
|
||||
%exclude %{pylibdir}/lib2to3/tests
|
||||
@ -1296,13 +1289,13 @@ fi
|
||||
%files -n system-python
|
||||
%defattr(-,root,root,-)
|
||||
%license LICENSE
|
||||
%doc README
|
||||
%doc README.rst
|
||||
%{_libexecdir}/system-python
|
||||
|
||||
%files -n system-python-libs
|
||||
%defattr(-,root,root,-)
|
||||
%license LICENSE
|
||||
%doc README
|
||||
%doc README.rst
|
||||
%dir %{pylibdir}
|
||||
%dir %{dynload_dir}
|
||||
|
||||
@ -1375,7 +1368,6 @@ fi
|
||||
|
||||
%dir %{pylibdir}/site-packages/
|
||||
%dir %{pylibdir}/site-packages/__pycache__/
|
||||
%{pylibdir}/site-packages/README
|
||||
%{pylibdir}/site-packages/README.txt
|
||||
%{pylibdir}/*.py
|
||||
%dir %{pylibdir}/__pycache__/
|
||||
@ -1659,6 +1651,10 @@ fi
|
||||
# ======================================================
|
||||
|
||||
%changelog
|
||||
* Thu Mar 16 2017 Iryna Shcherbina <ishcherb@redaht.com> - 3.6.1-0.1.rc1
|
||||
- Update to Python 3.6.1 release candidate 1
|
||||
- Add patch 264 to skip a known test failure on aarch64
|
||||
|
||||
* Fri Mar 10 2017 Charalampos Stratakis <cstratak@redhat.com> - 3.6.0-21
|
||||
- Use proper command line parsing in _testembed
|
||||
- Backport of PEP 538: Coercing the legacy C locale to a UTF-8 based locale
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (Python-3.6.0.tar.xz) = 9d06bee9172bc0bfd2d280fd1c27ea712f3258cfbfd2e2aeb734d0a6710998d5deeefc5d6e72251750dd9493d35461511ceaa187a29dea700ca238ff6ac1dbb2
|
||||
SHA512 (Python-3.6.1rc1.tar.xz) = 21ae75db2a568ba85af5510d45c3616595ae00b9f5008d78b926340980b4728f4fd393d2ecd435d2902cd25aba50a8b98f5cdbfa651da75c8f164909bc4730be
|
||||
|
Loading…
Reference in New Issue
Block a user