python310/python311: fix failing tests with openssl >= 3.4
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
|
||||
index e637830..80728d2 100644
|
||||
--- a/Modules/_ssl.c
|
||||
+++ b/Modules/_ssl.c
|
||||
@@ -656,6 +656,11 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
|
||||
errstr = "Some I/O error occurred";
|
||||
}
|
||||
} else {
|
||||
+ if (ERR_GET_LIB(e) == ERR_LIB_SYS) {
|
||||
+ // A system error is being reported; reason is set to errno
|
||||
+ errno = ERR_GET_REASON(e);
|
||||
+ return PyErr_SetFromErrno(PyExc_OSError);
|
||||
+ }
|
||||
p = PY_SSL_ERROR_SYSCALL;
|
||||
}
|
||||
break;
|
||||
@@ -681,6 +686,11 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
|
||||
errstr = "EOF occurred in violation of protocol";
|
||||
}
|
||||
#endif
|
||||
+ if (ERR_GET_LIB(e) == ERR_LIB_SYS) {
|
||||
+ // A system error is being reported; reason is set to errno
|
||||
+ errno = ERR_GET_REASON(e);
|
||||
+ return PyErr_SetFromErrno(PyExc_OSError);
|
||||
+ }
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -299,6 +299,15 @@ in with passthru; stdenv.mkDerivation (finalAttrs: {
|
||||
] ++ optionals (pythonOlder "3.12") [
|
||||
# https://github.com/python/cpython/issues/90656
|
||||
./loongarch-support.patch
|
||||
# fix failing tests with openssl >= 3.4
|
||||
# https://github.com/python/cpython/pull/127361
|
||||
] ++ optionals (pythonAtLeast "3.10" && pythonOlder "3.11") [
|
||||
./3.10/raise-OSError-for-ERR_LIB_SYS.patch
|
||||
] ++ optionals (pythonAtLeast "3.11" && pythonOlder "3.12") [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/python/cpython/commit/f4b31edf2d9d72878dab1f66a36913b5bcc848ec.patch";
|
||||
sha256 = "sha256-w7zZMp0yqyi4h5oG8sK4z9BwNEkqg4Ar+en3nlWcxh0=";
|
||||
})
|
||||
] ++ optionals (pythonAtLeast "3.11" && pythonOlder "3.13") [
|
||||
# backport fix for https://github.com/python/cpython/issues/95855
|
||||
./platform-triplet-detection.patch
|
||||
|
||||
Reference in New Issue
Block a user