package/python-autobahn: bump to version 21.3.1
authorJames Hilliard <james.hilliard1@gmail.com>
Sun, 8 Aug 2021 14:44:33 +0000 (08:44 -0600)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 19 Aug 2021 21:24:09 +0000 (23:24 +0200)
Strip xbr contracts which are used only for the xbr feature which is
entirely unsupported by buildroot.

Add patch to fix some xbr assets getting accidentially included.

Enable the optimized nvx cffi extension module when available.

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/python-autobahn/0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch [new file with mode: 0644]
package/python-autobahn/0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch [new file with mode: 0644]
package/python-autobahn/Config.in
package/python-autobahn/python-autobahn.hash
package/python-autobahn/python-autobahn.mk

diff --git a/package/python-autobahn/0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch b/package/python-autobahn/0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch
new file mode 100644 (file)
index 0000000..f239345
--- /dev/null
@@ -0,0 +1,54 @@
+From b13b7e38b38e2c79c0a13be32e05f0451483cd01 Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Sat, 12 Jun 2021 15:32:37 -0600
+Subject: [PATCH] Fix duplicate xbr packages and xbr templates package_data.
+ (#1492)
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+a370f9e7154e59b313cb675bfcaf8cad6011bd52]
+---
+ MANIFEST.in |  1 -
+ setup.py    | 10 ++++++++--
+ 2 files changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/MANIFEST.in b/MANIFEST.in
+index f4cb6da1..1dd32f0e 100644
+--- a/MANIFEST.in
++++ b/MANIFEST.in
+@@ -1,4 +1,3 @@
+ include LICENSE
+ include autobahn/nvx/_utf8validator.c
+ recursive-include autobahn/wamp/gen/schema *
+-recursive-include autobahn/xbr/templates *
+diff --git a/setup.py b/setup.py
+index cf4e29ba..f27006da 100644
+--- a/setup.py
++++ b/setup.py
+@@ -166,6 +166,12 @@ packages = [
+     'twisted.plugins',
+ ]
++xbr_packages = [
++    'autobahn.xbr',
++    'autobahn.asyncio.xbr',
++    'autobahn.twisted.xbr',
++]
++
+ package_data = {'autobahn.asyncio': ['./test/*']}
+ entry_points = {
+@@ -179,8 +185,8 @@ if 'AUTOBAHN_STRIP_XBR' in os.environ:
+     shutil.rmtree('autobahn.egg-info', ignore_errors=True)
+ else:
+     extras_require_all += extras_require_xbr
+-    packages += ['autobahn.xbr', 'autobahn.asyncio.xbr', 'autobahn.twisted.xbr']
+-    package_data['xbr'] = ['./xbr/contracts/*.json']
++    packages += xbr_packages
++    package_data['xbr'] = ['./xbr/templates/*.py.jinja2']
+     entry_points['console_scripts'] += ["xbrnetwork = autobahn.xbr._cli:_main"]
+ # development dependencies
+-- 
+2.25.1
+
diff --git a/package/python-autobahn/0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch b/package/python-autobahn/0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch
new file mode 100644 (file)
index 0000000..c2c2cf5
--- /dev/null
@@ -0,0 +1,60 @@
+From 1e3162bab59cbc2f7cf8b9ef6cadf55ee273c1d8 Mon Sep 17 00:00:00 2001
+From: James Hilliard <james.hilliard1@gmail.com>
+Date: Thu, 22 Jul 2021 06:56:51 -0600
+Subject: [PATCH] Build with nvx by default and don't publish universal wheel.
+ (#1493)
+
+Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
+[james.hilliard1@gmail.com: backport from upstream commit
+a35f22eeaafca7568f1deb35c4a1b82ae78f77d4]
+---
+ Makefile                       | 8 ++++----
+ autobahn/nvx/_utf8validator.py | 7 ++++++-
+ setup.py                       | 7 +------
+ 3 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/autobahn/nvx/_utf8validator.py b/autobahn/nvx/_utf8validator.py
+index e72fc872..34393356 100644
+--- a/autobahn/nvx/_utf8validator.py
++++ b/autobahn/nvx/_utf8validator.py
+@@ -44,13 +44,18 @@ ffi.cdef("""
+     int nvx_utf8vld_get_impl(void* utf8vld);
+ """)
++optional = True
++if 'AUTOBAHN_USE_NVX' in os.environ and os.environ['AUTOBAHN_USE_NVX'] in ['1', 'true']:
++    optional = False
++
+ with open(os.path.join(os.path.dirname(__file__), '_utf8validator.c')) as fd:
+     c_source = fd.read()
+     ffi.set_source(
+         "_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', '-O3', '-march=native'],
++        optional=optional
+     )
+diff --git a/setup.py b/setup.py
+index f27006da..4889a39e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -110,12 +110,7 @@ extras_require_nvx = [
+ # cffi based extension modules to build, currently only NVX
+ cffi_modules = []
+-if 'AUTOBAHN_USE_NVX' in os.environ:
+-    # FIXME: building this extension will make the wheel
+-    # produced no longer universal (as in "autobahn-18.4.1-py2.py3-none-any.whl").
+-    # on the other hand, I don't know how to selectively include this
+-    # based on the install flavor the user has chosen (eg pip install autobahn[nvx]
+-    # should make the following be included)
++if 'AUTOBAHN_USE_NVX' not in os.environ or os.environ['AUTOBAHN_USE_NVX'] not in ['0', 'false']:
+     cffi_modules.append('autobahn/nvx/_utf8validator.py:ffi')
+ extras_require_xbr = [
+-- 
+2.25.1
+
index 78b16897bcc5c2dcf10ac7ef36dc0a34f162d66a..f719dcc8f1478f2087badf5120cdf40bff5fb45b 100644 (file)
@@ -2,7 +2,9 @@ config BR2_PACKAGE_PYTHON_AUTOBAHN
        bool "python-autobahn"
        depends on BR2_INSTALL_LIBSTDCPP # python-cryptography -> python-pyasn
        depends on BR2_PACKAGE_PYTHON3
+       select BR2_PACKAGE_PYTHON_CFFI # runtime
        select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime
+       select BR2_PACKAGE_PYTHON_HYPERLINK # runtime
        select BR2_PACKAGE_PYTHON_TXAIO # runtime
        help
          WebSocket client and server library, WAMP real-time
index a5aa2a5a7df32e2dd0773cf7e241d963069a68d4..7de1e7e67350e69f4b6b23e7098c94e299ca28e2 100644 (file)
@@ -1,5 +1,5 @@
 # md5, sha256 from https://pypi.org/pypi/autobahn/json
-md5  dcae3cf26203aa4bbd9912137e5c9512  autobahn-20.4.3.tar.gz
-sha256  c6fe745d52ba9f9eecf791cd31f558df42aebfc4f9ee558a8f1d18c707e1ae1f  autobahn-20.4.3.tar.gz
+md5  dcba839ee61be33d05042a09c008c6bc  autobahn-21.3.1.tar.gz
+sha256  e126c1f583e872fb59e79d36977cfa1f2d0a8a79f90ae31f406faae7664b8e03  autobahn-21.3.1.tar.gz
 # Locally computed sha256 checksums
 sha256  0387eefce570453daaa60633f28676003731eeca28b2d0a0071c628e3a0004ef  LICENSE
index 81e2b7a4ca02afc7310b823c9ca0b6e674de90a3..4ec47f54ce7f8a8bfaffd7dfc8d088e7de1323cb 100644 (file)
@@ -4,13 +4,15 @@
 #
 ################################################################################
 
-PYTHON_AUTOBAHN_VERSION = 20.4.3
+PYTHON_AUTOBAHN_VERSION = 21.3.1
 PYTHON_AUTOBAHN_SOURCE = autobahn-$(PYTHON_AUTOBAHN_VERSION).tar.gz
-PYTHON_AUTOBAHN_SITE = https://files.pythonhosted.org/packages/cb/16/38d27874ef827974f44acb6dd64a92a9248b624734c0e84b91083c2d9350
+PYTHON_AUTOBAHN_SITE = https://files.pythonhosted.org/packages/4c/9e/f5bdfb55d1eab67c4b6d24d1397f95feec792071ff1b2f5a893d6d5247f3
 PYTHON_AUTOBAHN_LICENSE = MIT
 PYTHON_AUTOBAHN_LICENSE_FILES = LICENSE
 PYTHON_AUTOBAHN_CPE_ID_VENDOR = crossbar
 PYTHON_AUTOBAHN_CPE_ID_PRODUCT = autobahn
 PYTHON_AUTOBAHN_SETUP_TYPE = setuptools
+PYTHON_AUTOBAHN_DEPENDENCIES = host-python-cffi
+PYTHON_AUTOBAHN_ENV = AUTOBAHN_STRIP_XBR=1
 
 $(eval $(python-package))