浏览代码

package/python-autobahn: bump to version 21.3.1

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>
James Hilliard 4 年之前
父节点
当前提交
68933bf195

+ 54 - 0
package/python-autobahn/0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch

@@ -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
+

+ 60 - 0
package/python-autobahn/0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch

@@ -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
+

+ 2 - 0
package/python-autobahn/Config.in

@@ -2,7 +2,9 @@ config BR2_PACKAGE_PYTHON_AUTOBAHN
 	bool "python-autobahn"
 	bool "python-autobahn"
 	depends on BR2_INSTALL_LIBSTDCPP # python-cryptography -> python-pyasn
 	depends on BR2_INSTALL_LIBSTDCPP # python-cryptography -> python-pyasn
 	depends on BR2_PACKAGE_PYTHON3
 	depends on BR2_PACKAGE_PYTHON3
+	select BR2_PACKAGE_PYTHON_CFFI # runtime
 	select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime
 	select BR2_PACKAGE_PYTHON_CRYPTOGRAPHY # runtime
+	select BR2_PACKAGE_PYTHON_HYPERLINK # runtime
 	select BR2_PACKAGE_PYTHON_TXAIO # runtime
 	select BR2_PACKAGE_PYTHON_TXAIO # runtime
 	help
 	help
 	  WebSocket client and server library, WAMP real-time
 	  WebSocket client and server library, WAMP real-time

+ 2 - 2
package/python-autobahn/python-autobahn.hash

@@ -1,5 +1,5 @@
 # md5, sha256 from https://pypi.org/pypi/autobahn/json
 # 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
 # Locally computed sha256 checksums
 sha256  0387eefce570453daaa60633f28676003731eeca28b2d0a0071c628e3a0004ef  LICENSE
 sha256  0387eefce570453daaa60633f28676003731eeca28b2d0a0071c628e3a0004ef  LICENSE

+ 4 - 2
package/python-autobahn/python-autobahn.mk

@@ -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_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 = MIT
 PYTHON_AUTOBAHN_LICENSE_FILES = LICENSE
 PYTHON_AUTOBAHN_LICENSE_FILES = LICENSE
 PYTHON_AUTOBAHN_CPE_ID_VENDOR = crossbar
 PYTHON_AUTOBAHN_CPE_ID_VENDOR = crossbar
 PYTHON_AUTOBAHN_CPE_ID_PRODUCT = autobahn
 PYTHON_AUTOBAHN_CPE_ID_PRODUCT = autobahn
 PYTHON_AUTOBAHN_SETUP_TYPE = setuptools
 PYTHON_AUTOBAHN_SETUP_TYPE = setuptools
+PYTHON_AUTOBAHN_DEPENDENCIES = host-python-cffi
+PYTHON_AUTOBAHN_ENV = AUTOBAHN_STRIP_XBR=1
 
 
 $(eval $(python-package))
 $(eval $(python-package))