From 68933bf19560c180379c34906281d49187a4e6ea Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Sun, 8 Aug 2021 08:44:33 -0600 Subject: [PATCH] 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 Signed-off-by: Thomas Petazzoni --- ...r-packages-and-xbr-templates-package.patch | 54 +++++++++++++++++ ...y-default-and-don-t-publish-universa.patch | 60 +++++++++++++++++++ package/python-autobahn/Config.in | 2 + package/python-autobahn/python-autobahn.hash | 4 +- package/python-autobahn/python-autobahn.mk | 6 +- 5 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 package/python-autobahn/0001-Fix-duplicate-xbr-packages-and-xbr-templates-package.patch create mode 100644 package/python-autobahn/0002-Build-with-nvx-by-default-and-don-t-publish-universa.patch 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 index 0000000000..f239345dc7 --- /dev/null +++ b/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 +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: 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 index 0000000000..c2c2cf5777 --- /dev/null +++ b/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 +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: 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 + diff --git a/package/python-autobahn/Config.in b/package/python-autobahn/Config.in index 78b16897bc..f719dcc8f1 100644 --- a/package/python-autobahn/Config.in +++ b/package/python-autobahn/Config.in @@ -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 diff --git a/package/python-autobahn/python-autobahn.hash b/package/python-autobahn/python-autobahn.hash index a5aa2a5a7d..7de1e7e673 100644 --- a/package/python-autobahn/python-autobahn.hash +++ b/package/python-autobahn/python-autobahn.hash @@ -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 diff --git a/package/python-autobahn/python-autobahn.mk b/package/python-autobahn/python-autobahn.mk index 81e2b7a4ca..4ec47f54ce 100644 --- a/package/python-autobahn/python-autobahn.mk +++ b/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_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)) -- 2.30.2