commit c5a4fe043af31edff719ac01cd5f6287c9ec3e703ed380267f830bc7ed2303b6 Author: Steve Kowalik Date: Tue Dec 10 06:11:32 2024 +0000 - Update to 24.6.2: * unit test fixes (#1634) * bump minimum twisted to 24.3.0 (#1635) * a couple of packaging fixes (#1632) * update license file to include contributors (#1628) * Random ID should beginning with 1 (#1637) - Drop patch fix-wamp-tests.patch, included upstream. - Add patch support-new-pytest-asyncio.patch: * Support even more pytest-asyncio. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-autobahn?expand=0&rev=73 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/autobahn-23.6.2.tar.gz b/autobahn-23.6.2.tar.gz new file mode 100644 index 0000000..baf6e6c --- /dev/null +++ b/autobahn-23.6.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec9421c52a2103364d1ef0468036e6019ee84f71721e86b36fe19ad6966c1181 +size 480814 diff --git a/autobahn-24.4.2.tar.gz b/autobahn-24.4.2.tar.gz new file mode 100644 index 0000000..1b6c5f9 --- /dev/null +++ b/autobahn-24.4.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d71ef1b0cf780b6d11f8b205fd2c7749765e65795f2ea7d823796642ee92c9 +size 482700 diff --git a/fix-wamp-tests.patch b/fix-wamp-tests.patch new file mode 100644 index 0000000..46ef98c --- /dev/null +++ b/fix-wamp-tests.patch @@ -0,0 +1,33 @@ +diff --git a/autobahn/wamp/test/test_wamp_component_aio.py b/autobahn/wamp/test/test_wamp_component_aio.py +index 168933ea5..2de9bf358 100644 +--- a/autobahn/wamp/test/test_wamp_component_aio.py ++++ b/autobahn/wamp/test/test_wamp_component_aio.py +@@ -35,7 +35,7 @@ + + @pytest.mark.skipif(sys.version_info < (3, 5), reason="requires Python 3.5+") + @pytest.mark.asyncio(forbid_global_loop=True) +- def test_asyncio_component(event_loop): ++ async def test_asyncio_component(event_loop): + orig_loop = txaio.config.loop + txaio.config.loop = event_loop + +@@ -72,11 +72,11 @@ def done(f): + txaio.config.loop = orig_loop + assert comp._done_f is None + f.add_done_callback(done) +- return finished ++ await finished + + @pytest.mark.skipif(sys.version_info < (3, 5), reason="requires Python 3.5+") + @pytest.mark.asyncio(forbid_global_loop=True) +- def test_asyncio_component_404(event_loop): ++ async def test_asyncio_component_404(event_loop): + """ + If something connects but then gets aborted, it should still try + to re-connect (in real cases this could be e.g. wrong path, +@@ -151,4 +151,4 @@ def done(f): + finished.set_result(None) + txaio.config.loop = orig_loop + f.add_done_callback(done) +- return finished ++ await finished diff --git a/intrin-arch.patch b/intrin-arch.patch new file mode 100644 index 0000000..88347e7 --- /dev/null +++ b/intrin-arch.patch @@ -0,0 +1,19 @@ +Index: autobahn-23.6.2/autobahn/nvx/_utf8validator.c +=================================================================== +--- autobahn-23.6.2.orig/autobahn/nvx/_utf8validator.c ++++ autobahn-23.6.2/autobahn/nvx/_utf8validator.c +@@ -27,10 +27,14 @@ + #include + #include + ++#ifdef __s390__ ++#include ++#else + // http://stackoverflow.com/questions/11228855/header-files-for-simd-intrinsics + #if defined(__SSE2__) || defined(__SSE4_1__) + #include + #endif ++#endif + + + #define UTF8_ACCEPT 0 diff --git a/python-autobahn.changes b/python-autobahn.changes new file mode 100644 index 0000000..9c75f00 --- /dev/null +++ b/python-autobahn.changes @@ -0,0 +1,422 @@ +------------------------------------------------------------------- +Tue Dec 10 06:10:04 UTC 2024 - Steve Kowalik + +- Update to 24.6.2: + * unit test fixes (#1634) + * bump minimum twisted to 24.3.0 (#1635) + * a couple of packaging fixes (#1632) + * update license file to include contributors (#1628) + * Random ID should beginning with 1 (#1637) +- Drop patch fix-wamp-tests.patch, included upstream. +- Add patch support-new-pytest-asyncio.patch: + * Support even more pytest-asyncio. + +------------------------------------------------------------------- +Thu Apr 25 08:18:43 UTC 2024 - Daniel Garcia + +- Add upstream patch fix-wamp-tests.patch to make it work with modern + python-pytest-asyncio package gh#crossbario/autobahn-python#1631 + +------------------------------------------------------------------- +Thu Feb 22 03:58:14 UTC 2024 - Steve Kowalik + +- Switch to autosetup and pyproject macros. +- No more greedy globs in %files. + +------------------------------------------------------------------- +Fri Jun 23 11:21:53 UTC 2023 - Markéta Machová + +- Update to 23.6.2 + * fix: use regular PyPI bitarray>=2.7.5 rather than from GitHub master + 23.6.1 + * fix: updated bitarray to make eth-account work on pypy + * fix: updated web3 and eth-abi to not use beta versions (#1616) + 23.1.2 + * fix: monkey patch web3/eth_abi for python 3.11 + 23.1.1 + * fix: support for Python up to v3.11 + * fix: update GitHub CI + * fix: copyright transferred to typedef int GmbH - no license change! + * fix: remove coverage crap + 22.12.1 + * new: expand WAMP Flatbuffers schemata (session ID in each message for MUXing) + * new: update flatc v22.12.06 and regenerate WAMP Flatbuffers type libraries + * fix: Twisted 22.10.0 incompability (#1604) + * fix: Rapid Cancelling Of Tasks Can Cause InvalidStateError (#1600) + * fix: identify_realm_name_category (#1590) + * fix: support Python 3.11 (#1599) + * fix: building _nvx_utf8validator extension on non-x86 systems (#1596) + * fix: asyncio rawsocket protocol transport details (#1592) + * new: expand EIP712AuthorityCertificate; more tests + +------------------------------------------------------------------- +Thu Aug 4 09:13:28 UTC 2022 - Otto Hollmann + +- Update to 22.7.1: + * fix: Fix a few typos in docs (#1587) + * fix: remove log noise from autobahn.websocket.protocol (#1588) + * new: add more helpers to EthereumKey and CryptosignKey (#1583) + * new: EIP712 certificate chains, incl. use for WAMP-Cryptosign + * fix: improve message logging at trace log level + * fix: forward correct TLS channel ID once the TLS handshake is complete + * new: add eip712 types for WAMP-Cryptosign certificates + * new: add more helpers to EthereumKey and CryptosignKey + * new: add EthereumKey.from_keyfile, CryptosignKey.from_keyfile, + CryptosignKey.from_pubkey +- Changes from 22.6.1: + * new: add SecurityModuleMemory.from_config and + SecurityModuleMemory.from_keyfile + * new: moved UserKey from crossbar to autobahn + * fix: more WAMP-Cryptosign unit tests + * new: experimental WAMP API catalog support + * new: regenerate FlatBuffers WAMP messages + * fix: allow tests to pass without XBR dependencies (#1580) + * new: Flatbuffers IDL based WAMP payload validation (#1576) + * fix: restore autobahn.twisted.testing to distribution (#1578) +- Changes from 22.5.1: + * new: WAMP Flatbuffers IDL and schema processing (experimental) + * new: WAMP-cryptosign trustroot (experimental) + * new: add wrapper type for CryptosignAuthextra + * fix: stricted type checking of Challenge; fix cryposign unit test; + * new: more test coverage + * fix: reduce log noise + * fix: forward channel_binding selected in Component client + * new: expand ISigningKey to provide security_module/key_id (if used) + * fix: Component cryptosign test + * fix: add type hints; fix channel_binding + * new: work on federated realms and secmods + * new: rename to and work on a.w.CryptosignKey + * new: add bip44 for cryptosign test + * fix: remove all txaio.make_logger refs from generic code (#1564) + * new: initial support for federated WAMP realms via a.x.FederatedRealm/Seeder + * new: moved utility functions and unit tests for WAMP realm name checking + from Crossbar.io + * new: allow list of URLs for transports in a.t.component.Component + * new: add websocket_options to a.t.wamp.ApplicationRunner + * new: add stop_at_close flag in a.t.component.run + * fix: reduce log noise (regression) on ApplicationRunner Twisted (#1561) + * new: allow max_retry_delay==0 for always-immediate auto-reconnect in + ApplicationRunner on Twisted + * new: add websocket_options to WAMP ApplicationRunner on Twisted (#888) + * new: more type hints and docs +- Changes from 22.4.2: + * fix: can not import autobahn.twisted.util with no-TLS (#1559) +- Changes from 22.4.1: + * new: modernize SessionDetails + * new: improve ISession/ITransportHandler and implementations (#1557) + * new: expand and refactor TransportDetails (#1551) + * fix: misc fixes, add type hints, more docs (#1547) + * new: key modules for use with WAMP-cryptosign (#1544) + * fix: string formatting with binary values in + TransportDetails.secure_channel_id (#1483) + * fix: never default set authid/authrole in component authenticators + * fix: TransportDetails string formatting (fixes #1486) + * fix: reading private ssh key for cryptosign (fixes #932) + * fix: do not throw (but log) when leaving a session not joined (#1542) + * fix: store WAMP authextra received (#1541) + +------------------------------------------------------------------- +Wed Mar 30 07:49:43 UTC 2022 - Dirk Müller + +- update to 22.3.2: + * fix: split out UI deps into separate dist flavor (#1532) + * fix: deps for RTD builds (#1540) + * fix: use and bundle dev deps from requirements file + +------------------------------------------------------------------- +Sun Mar 27 13:53:14 UTC 2022 - Dirk Müller + +- update to 22.3.1: + * fix generate_token + * reduce twisted log noise for wamp clients + * add GitHub URL for PyPi + +------------------------------------------------------------------- +Fri Mar 11 08:54:00 UTC 2022 - Guillaume GARDET + +- Fix packaging for %arm, aarch64 and riscv64 + +------------------------------------------------------------------- +Wed Mar 9 05:57:11 UTC 2022 - Steve Kowalik + +- Update to 22.2.2: + * fix: auto ping/pong logs should be debug instead of info (#1524) + * new: add auto-ping/pong configuration knob autoPingRestartOnAnyTraffic (see discussion here). + * new: extended websocket auto-ping/pong ("heartbeating") with builtin RTT measurement + * new: experimental support for transaction_hash in WAMP Publish/Call (see discussion here). + * new: support decimal numbers WAMP serialization and round-tripping in both JSON and CBOR + * fix: only depend on cbor2 (for WAMP CBOR serialization), not also cbor + * fix: PyInstaller and Docker build / CI issues + * new: support Python 3.10 + * new: allow optional keys in endpoint config validation + * fix: reset transport retry status when connection succeeds + * fix: update Docker/PyPy to pypy:3.8-slim + * fix: autobahn installation in docker (#1503) + * new: refactor SigningKey class for reusability (#1500, #1501) + * new: expand XBR node pairing helpers + * fix: build with nvx by default and don't publish universal wheel. (#1493) + * fix: update wamp flatbuffer schema for r2r links + * fix: don't clobber factory (#1480) + * fix: explicitly require setuptools + * new: expand wamp auth scram and xbr argon2/hkdf (#1479) + * fix: WebSocket compression, window size (zlib wbits) == 8 is illegal nowerdays (#1477) + * fix: XBR IDL code generator - all 4 WAMP actions working now + * new: add automated build of xbrnetwork CLI (single-file EXE) in CI +- Remove python-mock BuildRequires +- Rebase respect-cflags.patch +- Ship the xbrnetwork-ui cli tool + +------------------------------------------------------------------- +Mon Feb 7 13:56:05 UTC 2022 - Andreas Schwab + +- Do not use NVX on riscv64 + +------------------------------------------------------------------- +Tue May 18 11:41:43 UTC 2021 - Dirk Müller + +- update to 21.3.1: + * fix: Twisted v21.2.0 breaks Crossbar.io + * new: use_binary_hex_encoding option for JSON object serializer + * fix: correct some sphinx doc references + * new: minimum supported Python (language) version is now 3.7 (on CPython and PyPy) + * new: more XBR proxy/stub code generation capabilities (RPC call/invoation handlers) + * fix: wamp-cryptosign loading of keys from SSH agent + * fix: update Docker image building and build Docker multi-arch images + * new: add more WAMP-cryptosign signature test vectors and unit tests + * fix: include XBR code rendering templates in package manifest + +------------------------------------------------------------------- +Sat Feb 13 20:06:02 UTC 2021 - Dirk Müller + +- update to 21.2.1: + * new: XBR ABI files now via separate package (“xbr”) - substantially reduce + package size for non-XBR users + * fix: circular dependency in “xbr” install flavor + * fix: XBR package manifest and CLI user profile loading + * fix: consider ‘wamp.close.goodbye_and_out’ a clean exit + * fix: HASH import as well as improve diagnostics if things go wrong + * fix: add missing jinja2 dependency for XBR CLI + * fix: wamp.close.goodbye_and_out counts as a clean exit + +------------------------------------------------------------------- +Tue Jan 12 05:13:37 UTC 2021 - Steve Kowalik + +- Add missing BuildRequires/Requires on python-hyperlink + +------------------------------------------------------------------- +Tue Jan 5 03:42:59 UTC 2021 - Steve Kowalik + +- Update to 20.12.3: + * fix: URL must be re-encoded when doing redirect (#1439) + (bsc#1180570, CVE-2020-35678) + * new: minimum supported Python (language) version is now 3.6 + * fix: derive_bip32childkey traceback (#1436) + * fix: update and adjust docker files to upstream changes + * new: CLI commands for WAMP IDL (xbrnetwork describe-schema / codegen-schema) + * new: add eth address helpers (#1413) + * new: cryptosign authextra allow arbitrary keys (#1411) + * fix: adapt to planet api prefix change (#1408) + * fix: Type check improve (#1405) + +------------------------------------------------------------------- +Mon Dec 21 21:50:35 UTC 2020 - Benjamin Greiner + +- Fix flavored requires -- gh#openSUSE/python-rpm-macros#66 + +------------------------------------------------------------------- +Mon Aug 31 10:06:55 UTC 2020 - Guillaume GARDET + +- Fix installation path when NVX is not used (fix aarch64) + +------------------------------------------------------------------- +Thu Aug 20 08:47:52 UTC 2020 - Guillaume GARDET + +- Do not use NVX on %arm and aarch64 + +------------------------------------------------------------------- +Thu Jul 23 14:42:38 UTC 2020 - Berthold Gunreben + +- Add patch to include correct intrin.h for s390 + * intrin-arch.patch +- Minor patch refresh for respect-cflags.patch + +------------------------------------------------------------------- +Tue Jul 21 05:51:09 UTC 2020 - Steve Kowalik + +- Update to 20.7.1: + * new: add market login eip. expose helpers + +------------------------------------------------------------------- +Wed Jul 8 02:19:00 UTC 2020 - Steve Kowalik + +- Update to 20.6.2: + * fix: xbr fixes (#1396) + * fix: use cpy 3.8 for running flake in CI + * new: Ticket1392 internal attrs (#1394) + * new: internal-only router attributes and hook for router to add custom + information + +------------------------------------------------------------------- +Mon Jun 15 04:37:00 UTC 2020 - Steve Kowalik + +- Update to 20.6.1: + * new: massive expansion of XBR CLI and EIP712 helpers + * new: more (exhaustive) serializer cross-tripping tests + * fix: some code quality and bug-risk issues (#1379) + * fix: removed externalPort assignment when not set (#1378) + * fix: docs link in README (#1381) + * fix: docs typo frameword -> framework (#1380) + * fix: improve logging; track results on observable mixin + * new: add environmental variable that strips xbr. (#1374) + * fix: trollius is gone (#1373) + * new: added ability to disable TLS channel binding (#1368) +- Correct BuildRequires/Requires (boo#1172126) + +------------------------------------------------------------------- +Sun Jun 14 08:49:49 UTC 2020 - Dirk Mueller + +- update to 20.4.3: + * new: XBR CLI (#1367) + * fix: add missing XBR dependency py-multihash + +------------------------------------------------------------------- +Wed May 27 09:36:10 UTC 2020 - Petr Gajdos + +- %python3_only -> %python_alternative + +------------------------------------------------------------------- +Mon Apr 20 05:41:32 UTC 2020 - Steve Kowalik + +- Update to 20.4.2: + * new: XBR - adjust eip712 signature for channel close + * new: XBR - adjustments after xbr refactoring (#1357) + * new: XBR - add channel open/close eip712 types to AB (#1358) + * new: WAMP-cryptosign - make channel_id_type optional in transport_channel_id() + * new: expose new XBR top-level contracts + * fix: bump dependencies versions for attrs and identity (#1346) + * fix: FrontendProxyProtocol object has no attribute 'write' (#1339) + * fix: WAMP-cryptosign authid is not mandatory; reduce log noise (#1340) + * fix: confusion between paying and payment channel (#1337) + * new: forward explicitly set app level errors from ApplicationRunner.run() (#1336) + * fix: simple typo: hookinh -> hooking (#1333) + * new: update for xbr v20.3.1 + * fix: for #1327 - cancel Auto Ping Timeout (#1328) + * new: helper function to create a configured Web3 blockchain connection (#1329) + * fix: add AuthAnonymous to __all__ (#1303) + * fix: CI building (caching?) issue "corrupt ZIP file" + * fix: update docker image build scripts and add ARM64/PyPy + * fix: use :func:`txaio.time_ns` and drop deprecated :func:`autobahn.util.time_ns` + * fix: update project README and docs for supported python versions (#1296) + * fix: WebSocket protocol instances now raise autobahn.exception.Disconnected when sending on a closed connection (#1002) + * fix: version conflict in xbr downstream application dependency (crossbarfx) (#1295) + * fix: add python_requires>=3.5 to prevent installation on python 2 (#1293) + * fix: first part of cleaning up code, dropping Python 2 support (#1282). + * fix: add docs for parameters to component.py (#1276) + * new: statistics tracking on WAMP serializers :class:`autobahn.wamp.serializer.Serializer` + * new: helper :func:`autobahn.util.time_ns` +- No longer build for Python 2 +- Update BuildRequires. + +------------------------------------------------------------------- +Wed Dec 11 11:53:12 UTC 2019 - Tomáš Chvátal + +- Skip rng tests as they randomly fail in obs + +------------------------------------------------------------------- +Tue Dec 3 14:28:53 UTC 2019 - Tomáš Chvátal + +- Update to 19.11.1: + * packaging fixes + +------------------------------------------------------------------- +Wed Oct 9 08:44:16 UTC 2019 - Tomáš Chvátal + +- Update to 19.10.1: + * various minor bugfixes mostly + +------------------------------------------------------------------- +Tue Sep 24 12:05:29 UTC 2019 - Tomáš Chvátal + +- Update to 19.9.3: + * packaging fixes + +------------------------------------------------------------------- +Fri Sep 13 12:43:37 UTC 2019 - Tomáš Chvátal + +- Update to 19.9.2: + * Various bugfixes mostly, not many features + +------------------------------------------------------------------- +Tue May 14 22:26:05 UTC 2019 - Jonathan Harker + +- Update to 19.5.1 + * fix: authextra merging (#1191) + * fix: set default retry_delay_jitter (#1190) + * new: add rawsocket + twisted example (#1189) + * new: WebSocket testing support, via Agent-style interface (#1186) + * new: decorator for on_connectfailure + * fix: delayed call leakage (#1152) + * new: CLI client (#1150) + * fix: set up TLS over proxy properly (#1149) + * new: expose ser modules (#1148) + * fix: base64 encodings, add hex encoding (#1146) + * new: onConnecting callback (with TransportDetails and ConnectingRequest). + Note: if you've implemented a pure IWebSocketChannel without inheriting + from Autobahn base classes, you'll need to add an onConnecting() method + that just does return None. + + +------------------------------------------------------------------- +Mon Apr 8 08:41:35 UTC 2019 - Tomáš Chvátal + +- Rename reproducible.patch to respect-cflags.patch and really make + sure we respect all the cflags + +------------------------------------------------------------------- +Mon Apr 8 07:32:05 UTC 2019 - Bernhard Wiedemann + +- Add reproducible.patch to make package build reproducible (boo#1100677) + and to not use SSE4.1 instructions + +------------------------------------------------------------------- +Fri Apr 5 08:12:36 UTC 2019 - Tomáš Chvátal + +- Fix the %pytest_arch call to pass properly + +------------------------------------------------------------------- +Tue Mar 26 13:18:38 UTC 2019 - Tomáš Chvátal + +- Update to 19.3.3: + * No upstream changelog + +------------------------------------------------------------------- +Tue Mar 19 14:37:02 UTC 2019 - Tomáš Chvátal + +- Update to 19.3.2: + * no upstream changelog +- List all the missing requirements based on setup.py + +------------------------------------------------------------------- +Thu Oct 18 09:23:10 UTC 2018 - Tomáš Chvátal + +- Update to 18.9.2: + * Various fixes all around + * Support python 3.7 +- remove-unittest2.patch was merged upstream + +------------------------------------------------------------------- +Fri Aug 10 11:22:33 UTC 2018 - mcepl@suse.com + +- Add remove-unittest2.patch which remove dependency on unittest2 + (filed upstream https://github.com/crossbario/autobahn-python/issues/1036) + +------------------------------------------------------------------- +Mon Mar 12 09:11:02 UTC 2018 - tchvatal@suse.com + +- Fix python2 pulling of trollius + +------------------------------------------------------------------- +Fri Mar 2 22:01:11 UTC 2018 - avvissu@yandex.by + +- Initial package + diff --git a/python-autobahn.spec b/python-autobahn.spec new file mode 100644 index 0000000..182e67c --- /dev/null +++ b/python-autobahn.spec @@ -0,0 +1,144 @@ +# +# spec file for package python-autobahn +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%ifarch %arm aarch64 riscv64 +%bcond_with nvx_support +%else +%bcond_without nvx_support +%endif + +Name: python-autobahn +Version: 24.4.2 +Release: 0 +Summary: WebSocket and WAMP in Python for Twisted and asyncio +License: MIT +URL: https://github.com/crossbario/autobahn-python +Source: https://files.pythonhosted.org/packages/source/a/autobahn/autobahn-%{version}.tar.gz +Patch0: respect-cflags.patch +Patch1: intrin-arch.patch +# PATCH-FIX-UPSTREAM gh#crossbario/autobahn-python#1647 +Patch2: support-new-pytest-asyncio.patch +BuildRequires: %{python_module PyNaCl >= 1.4.0} +BuildRequires: %{python_module Twisted >= 24.3.0} +BuildRequires: %{python_module argon2-cffi >= 20.1.0} +BuildRequires: %{python_module attrs >= 20.3.0} +BuildRequires: %{python_module cbor2 >= 5.2.0} +BuildRequires: %{python_module cffi >= 1.14.5} +BuildRequires: %{python_module cryptography >= 3.4.6} +BuildRequires: %{python_module devel >= 3.9} +BuildRequires: %{python_module flatbuffers >= 22.12.6} +BuildRequires: %{python_module hyperlink >= 21.0.0} +BuildRequires: %{python_module msgpack >= 1.0.2} +BuildRequires: %{python_module passlib >= 1.7.4} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module py-ubjson >= 0.16.1} +BuildRequires: %{python_module pyOpenSSL >= 20.0.1} +BuildRequires: %{python_module pytest >= 2.8.6} +BuildRequires: %{python_module pytest-aiohttp} +BuildRequires: %{python_module pytest-asyncio} +BuildRequires: %{python_module pytrie >= 0.4.0} +BuildRequires: %{python_module qrcode >= 7.3.1} +BuildRequires: %{python_module service_identity >= 18.1.0} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module txaio >= 21.2.1} +BuildRequires: %{python_module ujson >= 4.0.2} +BuildRequires: %{python_module wheel} +BuildRequires: %{python_module wsaccel >= 0.6.3} +BuildRequires: %{python_module zope.interface >= 5.2.0} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-PyNaCl >= 1.4.0 +Requires: python-Twisted >= 24.3.0 +Requires: python-argon2-cffi >= 20.1.0 +Requires: python-attrs >= 20.3.0 +Requires: python-cbor2 >= 5.2.0 +Requires: python-cffi >= 1.14.5 +Requires: python-cryptography >= 3.4.6 +Requires: python-flatbuffers >= 22.12.6 +Requires: python-hyperlink >= 21.0.0 +Requires: python-msgpack >= 1.0.2 +Requires: python-passlib >= 1.7.4 +Requires: python-py-ubjson >= 0.16.1 +Requires: python-pyOpenSSL >= 20.0.1 +Requires: python-pytrie >= 0.4.0 +Requires: python-qrcode >= 7.3.1 +Requires: python-service_identity >= 18.1.0 +Requires: python-setuptools +Requires: python-txaio >= 21.2.1 +Requires: python-ujson >= 4.0.2 +Requires: python-wsaccel >= 0.6.3 +Requires: python-zope.interface >= 5.2.0 +Requires(post): update-alternatives +Requires(postun): update-alternatives +%python_subpackages + +%description +WebSocket allows bidirectional real-time messaging on the Web and WAMP adds +asynchronous Remote Procedure Calls and Publish & Subscribe on top of WebSocket. + +%prep +%autosetup -p1 -n autobahn-%{version} + +# this test relies too much on rng that can behave randomly in obs +rm autobahn/test/test_rng.py + +%build +%if %{with nvx_support} +export AUTOBAHN_USE_NVX=true +%endif +export CFLAGS="%{optflags}" +%pyproject_wheel + +%install +%if %{with nvx_support} +export AUTOBAHN_USE_NVX=true +%endif +%pyproject_install +%python_clone -a %{buildroot}%{_bindir}/wamp +%python_clone -a %{buildroot}%{_bindir}/xbrnetwork +%python_clone -a %{buildroot}%{_bindir}/xbrnetwork-ui +%python_expand %fdupes %{buildroot}%{$python_sitearch} + +%if %{with nvx_support} +# It tries to test NVX, even if disabled +%check +export USE_ASYNCIO=true +export AUTOBAHN_USE_NVX=true +export PYTHONDONTWRITEBYTECODE=1 +export PY_IGNORE_IMPORTMISMATCH=1 +%pytest_arch +%endif + +%post +%python_install_alternative wamp xbrnetwork xbrnetwork-ui + +%postun +%python_uninstall_alternative wamp xbrnetwork xbrnetwork-ui + +%files %{python_files} +%license LICENSE +%doc README.rst +%{python_sitearch}/_nvx_utf8validator.abi3.so +%{python_sitearch}/autobahn +%{python_sitearch}/twisted +%{python_sitearch}/autobahn-%{version}.dist-info +%python_alternative %{_bindir}/wamp +%python_alternative %{_bindir}/xbrnetwork +%python_alternative %{_bindir}/xbrnetwork-ui + +%changelog diff --git a/respect-cflags.patch b/respect-cflags.patch new file mode 100644 index 0000000..7bc9375 --- /dev/null +++ b/respect-cflags.patch @@ -0,0 +1,24 @@ +Author: Bernhard M. Wiedemann +Date: 2019-04-08 + +This bug was found while working on reproducible builds for openSUSE. + +Without this patch, binaries would use SSE4.1 instructions if the build +machine's CPU had it available. +This could cause 'invalid instruction' faults on older user machines. + +https://bugzilla.opensuse.org/show_bug.cgi?id=1100677 + +Index: autobahn-22.2.2/autobahn/nvx/_utf8validator.py +=================================================================== +--- autobahn-22.2.2.orig/autobahn/nvx/_utf8validator.py ++++ autobahn-22.2.2/autobahn/nvx/_utf8validator.py +@@ -54,7 +54,7 @@ with open(os.path.join(os.path.dirname(_ + "_nvx_utf8validator", + c_source, + libraries=[], +- extra_compile_args=['-std=c99', '-Wall', '-Wno-strict-prototypes', '-O3', '-march=native'], ++ extra_compile_args=['-std=c99', '-Wall', '-Wno-strict-prototypes'], + optional=optional + ) + diff --git a/support-new-pytest-asyncio.patch b/support-new-pytest-asyncio.patch new file mode 100644 index 0000000..45da488 --- /dev/null +++ b/support-new-pytest-asyncio.patch @@ -0,0 +1,78 @@ +From b8d88d02fe9458a084cf6c4a4ce4672b3cd7c4aa Mon Sep 17 00:00:00 2001 +From: David Hotham +Date: Sat, 3 Aug 2024 22:01:10 +0100 +Subject: [PATCH] fix some deprecations in tests + +--- + autobahn/asyncio/test/test_aio_websocket.py | 7 +++---- + autobahn/wamp/test/test_wamp_component_aio.py | 12 ++++++------ + 2 files changed, 9 insertions(+), 10 deletions(-) + +diff --git a/autobahn/asyncio/test/test_aio_websocket.py b/autobahn/asyncio/test/test_aio_websocket.py +index f80cc2499..afcbfcf9e 100644 +--- a/autobahn/asyncio/test/test_aio_websocket.py ++++ b/autobahn/asyncio/test/test_aio_websocket.py +@@ -21,7 +21,6 @@ async def test_echo_async(): + assert 'Hello!' == await echo_async('Hello!', 0) + + +-# @pytest.mark.asyncio(forbid_global_loop=True) + @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only') + def test_websocket_custom_loop(event_loop): + factory = WebSocketServerFactory(loop=event_loop) +@@ -31,8 +30,7 @@ def test_websocket_custom_loop(event_loop): + + + @pytest.mark.skipif(not os.environ.get('USE_ASYNCIO', False), reason='test runs on asyncio only') +-@pytest.mark.asyncio +-async def test_async_on_connect_server(event_loop): ++def test_async_on_connect_server(event_loop): + + num = 42 + done = txaio.create_future() +@@ -65,7 +63,8 @@ async def on_connect(req): + b'\r\n', # last string doesn't get a \r\n from join() + ]) + server.processHandshake() +- await done ++ ++ event_loop.run_until_complete(done) + + assert len(values) == 1 + assert values[0] == num * num +diff --git a/autobahn/wamp/test/test_wamp_component_aio.py b/autobahn/wamp/test/test_wamp_component_aio.py +index 2de9bf358..2393fd7c6 100644 +--- a/autobahn/wamp/test/test_wamp_component_aio.py ++++ b/autobahn/wamp/test/test_wamp_component_aio.py +@@ -34,8 +34,7 @@ + from autobahn.asyncio.component import Component + + @pytest.mark.skipif(sys.version_info < (3, 5), reason="requires Python 3.5+") +- @pytest.mark.asyncio(forbid_global_loop=True) +- async def test_asyncio_component(event_loop): ++ def test_asyncio_component(event_loop): + orig_loop = txaio.config.loop + txaio.config.loop = event_loop + +@@ -72,11 +71,11 @@ def done(f): + txaio.config.loop = orig_loop + assert comp._done_f is None + f.add_done_callback(done) +- await finished ++ ++ event_loop.run_until_complete(finished) + + @pytest.mark.skipif(sys.version_info < (3, 5), reason="requires Python 3.5+") +- @pytest.mark.asyncio(forbid_global_loop=True) +- async def test_asyncio_component_404(event_loop): ++ def test_asyncio_component_404(event_loop): + """ + If something connects but then gets aborted, it should still try + to re-connect (in real cases this could be e.g. wrong path, +@@ -151,4 +150,5 @@ def done(f): + finished.set_result(None) + txaio.config.loop = orig_loop + f.add_done_callback(done) +- await finished ++ ++ event_loop.run_until_complete(finished)