Update to v0.31.1
Resolves: RHEL-155806 Signed-off-by: Kseniia Nivnia <knivnia@redhat.com>
This commit is contained in:
parent
5eb4abfd56
commit
3d9bb77591
1
.gitignore
vendored
1
.gitignore
vendored
@ -17,3 +17,4 @@
|
|||||||
/awscrt-0.20.2.tar.gz
|
/awscrt-0.20.2.tar.gz
|
||||||
/awscrt-0.23.8.tar.gz
|
/awscrt-0.23.8.tar.gz
|
||||||
/awscrt-0.27.2.tar.gz
|
/awscrt-0.27.2.tar.gz
|
||||||
|
/awscrt-0.31.1.tar.gz
|
||||||
|
|||||||
@ -1,10 +1,11 @@
|
|||||||
%global desc %{expand:
|
%global desc %{expand:
|
||||||
Python bindings for the AWS Common Runtime}
|
Python bindings for the AWS Common Runtime}
|
||||||
|
|
||||||
|
|
||||||
Name: python-awscrt
|
Name: python-awscrt
|
||||||
Version: 0.27.2
|
Version: 0.31.1
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
|
|
||||||
Summary: Python bindings for the AWS Common Runtime
|
Summary: Python bindings for the AWS Common Runtime
|
||||||
# All files are licensed under Apache-2.0, except:
|
# All files are licensed under Apache-2.0, except:
|
||||||
# - crt/aws-c-common/include/aws/common/external/cJSON.h is MIT
|
# - crt/aws-c-common/include/aws/common/external/cJSON.h is MIT
|
||||||
@ -12,68 +13,67 @@ Summary: Python bindings for the AWS Common Runtime
|
|||||||
# - crt/s2n/pq-crypto/kyber_r3/KeccakP-brg_endian_avx2.h is BSD-3-Clause
|
# - crt/s2n/pq-crypto/kyber_r3/KeccakP-brg_endian_avx2.h is BSD-3-Clause
|
||||||
License: Apache-2.0 AND MIT AND BSD-3-Clause
|
License: Apache-2.0 AND MIT AND BSD-3-Clause
|
||||||
URL: https://github.com/awslabs/aws-crt-python
|
URL: https://github.com/awslabs/aws-crt-python
|
||||||
|
|
||||||
Source0: %{pypi_source awscrt}
|
Source0: %{pypi_source awscrt}
|
||||||
|
|
||||||
# two tests require internet connection, skip them
|
# two tests require internet connection, skip them
|
||||||
Patch0: skip-tests-requiring-network.patch
|
Patch0: skip-tests-requiring-network.patch
|
||||||
# skip SHA1 in test_crypto
|
# skip SHA1 in test_crypto
|
||||||
Patch1: skip-SHA1-in-test_crypto.patch
|
Patch1: skip-SHA1-in-test_crypto.patch
|
||||||
|
# websockets test fail fix
|
||||||
|
Patch2: websockets.patch
|
||||||
|
# remove FIPS version check in s2n
|
||||||
|
Patch3: s2n-remove-fips-version-check.patch
|
||||||
|
|
||||||
BuildRequires: python%{python3_pkgversion}-devel
|
BuildRequires: python%{python3_pkgversion}-devel
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: openssl-devel
|
BuildRequires: openssl-devel
|
||||||
|
|
||||||
BuildRequires: python%{python3_pkgversion}-websockets
|
BuildRequires: python%{python3_pkgversion}-websockets
|
||||||
|
|
||||||
# s390x: https://bugzilla.redhat.com/show_bug.cgi?id=2180988
|
|
||||||
ExcludeArch: %{ix86} s390x
|
|
||||||
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
%{desc}
|
%{desc}
|
||||||
|
|
||||||
|
|
||||||
%package -n python%{python3_pkgversion}-awscrt
|
%package -n python%{python3_pkgversion}-awscrt
|
||||||
Summary: %{summary}
|
Summary: %{summary}
|
||||||
|
|
||||||
|
|
||||||
%description -n python%{python3_pkgversion}-awscrt
|
%description -n python%{python3_pkgversion}-awscrt
|
||||||
%{desc}
|
%{desc}
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -p1 -n awscrt-%{version}
|
%autosetup -p1 -n awscrt-%{version}
|
||||||
|
|
||||||
# relax version requirements
|
# relax version requirements and add wheel to build requirements
|
||||||
sed -i -e 's/setuptools>=75\.3\.1/setuptools/' -e 's/wheel>=0\.45\.1/wheel/' pyproject.toml
|
sed -i -e 's/"setuptools>=75\.3\.1",/"setuptools",\n "wheel",/' pyproject.toml
|
||||||
|
# fix bdist_wheel import for setuptools 70.0.0+
|
||||||
# stay compatible with websockets<13
|
sed -i -e 's/from setuptools\.command\.bdist_wheel import bdist_wheel/from wheel.bdist_wheel import bdist_wheel/' setup.py
|
||||||
sed -i 's/websockets\.asyncio\.server/websockets.server/' test/test_websocket.py
|
|
||||||
|
|
||||||
|
|
||||||
%generate_buildrequires
|
%generate_buildrequires
|
||||||
%pyproject_buildrequires
|
%pyproject_buildrequires
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1
|
export AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1
|
||||||
%pyproject_wheel
|
%pyproject_wheel
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%pyproject_install
|
%pyproject_install
|
||||||
%pyproject_save_files _awscrt awscrt
|
%pyproject_save_files _awscrt awscrt
|
||||||
|
|
||||||
|
|
||||||
%check
|
%check
|
||||||
PYTHONPATH="%{buildroot}%{python3_sitearch}:%{buildroot}%{python3_sitelib}" %{python3} -m unittest
|
%{py3_test_envvars} %{python3} -m unittest
|
||||||
|
|
||||||
|
|
||||||
%files -n python%{python3_pkgversion}-awscrt -f %{pyproject_files}
|
%files -n python%{python3_pkgversion}-awscrt -f %{pyproject_files}
|
||||||
%doc README.md
|
%doc README.md
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
%autochangelog
|
%autochangelog
|
||||||
|
|||||||
29
s2n-remove-fips-version-check.patch
Normal file
29
s2n-remove-fips-version-check.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
diff --git a/crt/s2n/crypto/s2n_fips.c b/crt/s2n/crypto/s2n_fips.c
|
||||||
|
index 13f9f77c0..b8af2e36e 100644
|
||||||
|
--- a/crt/s2n/crypto/s2n_fips.c
|
||||||
|
+++ b/crt/s2n/crypto/s2n_fips.c
|
||||||
|
@@ -57,15 +57,15 @@ int s2n_fips_init(void)
|
||||||
|
{
|
||||||
|
s2n_fips_mode_enabled = s2n_libcrypto_is_fips();
|
||||||
|
|
||||||
|
- /* When using Openssl, ONLY 3.0 currently supports FIPS.
|
||||||
|
- * openssl-1.0.2-fips is no longer supported.
|
||||||
|
- * openssl >= 3.5 will likely have a FIPS 140-3 certificate instead of a
|
||||||
|
- * FIPS 140-2 certificate, which will require additional review in order
|
||||||
|
- * to properly integrate.
|
||||||
|
- */
|
||||||
|
-#if defined(OPENSSL_FIPS) || S2N_OPENSSL_VERSION_AT_LEAST(3, 5, 0)
|
||||||
|
- POSIX_ENSURE(!s2n_fips_mode_enabled, S2N_ERR_FIPS_MODE_UNSUPPORTED);
|
||||||
|
-#endif
|
||||||
|
+// /* When using Openssl, ONLY 3.0 currently supports FIPS.
|
||||||
|
+// * openssl-1.0.2-fips is no longer supported.
|
||||||
|
+// * openssl >= 3.5 will likely have a FIPS 140-3 certificate instead of a
|
||||||
|
+// * FIPS 140-2 certificate, which will require additional review in order
|
||||||
|
+// * to properly integrate.
|
||||||
|
+// */
|
||||||
|
+// #if defined(OPENSSL_FIPS) || S2N_OPENSSL_VERSION_AT_LEAST(3, 5, 0)
|
||||||
|
+// POSIX_ENSURE(!s2n_fips_mode_enabled, S2N_ERR_FIPS_MODE_UNSUPPORTED);
|
||||||
|
+// #endif
|
||||||
|
|
||||||
|
return S2N_SUCCESS;
|
||||||
|
}
|
||||||
@ -55,4 +55,3 @@ index 628900f..7f2296d 100644
|
|||||||
+ h = Hash.sha256_new()
|
+ h = Hash.sha256_new()
|
||||||
h.update(b'totally original test string')
|
h.update(b'totally original test string')
|
||||||
digest = h.digest()
|
digest = h.digest()
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,36 @@
|
|||||||
|
diff --git a/test/test_aiohttp_client.py b/test/test_aiohttp_client.py
|
||||||
|
index f3fa544..3b04218 100644
|
||||||
|
--- a/test/test_aiohttp_client.py
|
||||||
|
+++ b/test/test_aiohttp_client.py
|
||||||
|
@@ -288,6 +288,7 @@ class TestAsyncClient(NativeResourceTest):
|
||||||
|
|
||||||
|
return connection
|
||||||
|
|
||||||
|
+ @unittest.skip("Requires network")
|
||||||
|
async def _test_h2_client(self):
|
||||||
|
url = urlparse("https://d1cz66xoahf9cl.cloudfront.net/http_test_doc.txt")
|
||||||
|
connection = await self._new_h2_client_connection(url)
|
||||||
|
@@ -309,6 +310,7 @@ class TestAsyncClient(NativeResourceTest):
|
||||||
|
|
||||||
|
await connection.close()
|
||||||
|
|
||||||
|
+ @unittest.skip("Requires network")
|
||||||
|
async def _test_h2_manual_write_exception(self):
|
||||||
|
url = urlparse("https://d1cz66xoahf9cl.cloudfront.net/http_test_doc.txt")
|
||||||
|
connection = await self._new_h2_client_connection(url)
|
||||||
|
@@ -428,6 +430,7 @@ class TestAsyncClient(NativeResourceTest):
|
||||||
|
finally:
|
||||||
|
self._stop_server()
|
||||||
|
|
||||||
|
+ @unittest.skip("Requires network")
|
||||||
|
async def _test_cross_thread_http2_client(self):
|
||||||
|
"""Test using an HTTP/2 client from a different thread/event loop."""
|
||||||
|
url = urlparse("https://d1cz66xoahf9cl.cloudfront.net/http_test_doc.txt")
|
||||||
diff --git a/test/test_http_client.py b/test/test_http_client.py
|
diff --git a/test/test_http_client.py b/test/test_http_client.py
|
||||||
index f79f39a..7498a96 100644
|
index 6aa9917..ad4b700 100644
|
||||||
--- a/test/test_http_client.py
|
--- a/test/test_http_client.py
|
||||||
+++ b/test/test_http_client.py
|
+++ b/test/test_http_client.py
|
||||||
@@ -353,6 +353,7 @@ class TestClient(NativeResourceTest):
|
@@ -354,6 +354,7 @@ class TestClient(NativeResourceTest):
|
||||||
tls_connection_options=tls_conn_opt)
|
tls_connection_options=tls_conn_opt)
|
||||||
return connection_future.result(self.timeout)
|
return connection_future.result(self.timeout)
|
||||||
|
|
||||||
@ -10,7 +38,7 @@ index f79f39a..7498a96 100644
|
|||||||
def test_h2_client(self):
|
def test_h2_client(self):
|
||||||
url = urlparse("https://d1cz66xoahf9cl.cloudfront.net/http_test_doc.txt")
|
url = urlparse("https://d1cz66xoahf9cl.cloudfront.net/http_test_doc.txt")
|
||||||
connection = self._new_h2_client_connection(url)
|
connection = self._new_h2_client_connection(url)
|
||||||
@@ -375,6 +376,7 @@ class TestClient(NativeResourceTest):
|
@@ -376,6 +377,7 @@ class TestClient(NativeResourceTest):
|
||||||
|
|
||||||
self.assertEqual(None, connection.close().exception(self.timeout))
|
self.assertEqual(None, connection.close().exception(self.timeout))
|
||||||
|
|
||||||
|
|||||||
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (awscrt-0.27.2.tar.gz) = 0b8ee3ed71a69957ef07e43542cb9c342bb0865668f95a4e3227a4e877d03648c70417c2e2ea7aaae44bbeace0a906dff7ab82bbf4d1e51498b382c5c624f9c7
|
SHA512 (awscrt-0.31.1.tar.gz) = 5ded69bdbf3d475764dad79d42492453e07ff6e8b9d61e753cd76c910f7ecfd3055c4d58b90e0449a92e88e2b27a103434aa56cca08f64b32ea8592ee0aeef18
|
||||||
|
|||||||
24
websockets.patch
Normal file
24
websockets.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff --git a/test/test_websocket.py b/test/test_websocket.py
|
||||||
|
index fcbcedb..ebebbcb 100644
|
||||||
|
--- a/test/test_websocket.py
|
||||||
|
+++ b/test/test_websocket.py
|
||||||
|
@@ -122,6 +122,7 @@ class WebSocketServer:
|
||||||
|
# that the asyncio server thread has finished startup.
|
||||||
|
self._server_started_event = threading.Event()
|
||||||
|
self._server_thread = threading.Thread(target=self._run_server_thread)
|
||||||
|
+ self._current_connection = None
|
||||||
|
|
||||||
|
def __enter__(self):
|
||||||
|
# main thread is entering the `with` block: start the server...
|
||||||
|
@@ -179,6 +180,13 @@ class WebSocketServer:
|
||||||
|
self._current_connection = None
|
||||||
|
|
||||||
|
def send_async(self, msg):
|
||||||
|
+ # Wait for a connection to be established before trying to send
|
||||||
|
+ max_wait = time() + TIMEOUT
|
||||||
|
+ while self._current_connection is None:
|
||||||
|
+ if time() > max_wait:
|
||||||
|
+ raise RuntimeError("Timeout waiting for WebSocket connection to be established")
|
||||||
|
+ sleep(0.01)
|
||||||
|
+
|
||||||
|
asyncio.run_coroutine_threadsafe(self._current_connection.send(msg), self._server_loop)
|
||||||
Loading…
Reference in New Issue
Block a user