From patchwork Fri Jan 5 13:36:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 37376 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37ED4C46CD2 for ; Fri, 5 Jan 2024 13:36:26 +0000 (UTC) Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.groups.io with SMTP id smtpd.web10.23445.1704461776504179665 for ; Fri, 05 Jan 2024 05:36:17 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=XTCL7KLY; spf=pass (domain: gmail.com, ip: 209.85.128.43, mailfrom: alex.kanavin@gmail.com) Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-40d5f40ce04so15967705e9.2 for ; Fri, 05 Jan 2024 05:36:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704461775; x=1705066575; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sENccvqqKA6bMbjGx9dRLqkX7hVUMSdYPAb1IsAzBNY=; b=XTCL7KLYBvVxd2/y3WiUvGUS0uRDdSWRZyHld6sHXL0vmnieYgSYkru31oINV7hnaG j9QA/oZ/ddIFyEouAM6JOLsCqf30BSFBlhSvPTk2mkLHpjiLQSag8HbX+2pXemY/nHHo ey5wmd8d7nh0g35UJmpe+gxII8N1G1SrMHkYZPYNK3+g0rJNUcRmxl9+5nYWkXVgwjH6 vfTcIjH/Pw6+SZXlvFCWDQg4w65gaBEsU3EefD06HhId2bjB72mA4mukUUBq+wE972Fz MgmPX3SPPsHVbsQF4KwDEjhTod09u7sJC0Fv6IAf5jmsPd06+E7VTfK6VzywL9TJGB0+ Rz9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704461775; x=1705066575; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=sENccvqqKA6bMbjGx9dRLqkX7hVUMSdYPAb1IsAzBNY=; b=BILIo3Y6bHGb/VgdruE8fxNdkhC6oLX+2ORyoJpglMWWsyGfv2iwTUY5OvutBLPuSF k/etizHsJ9hv/vsHEBg1Xb+L94/5CVVM5iWmF0uqsQAxdPe+/jOm/P23KPrzOUSZVZmZ 2uQVtk5HfGMYKCjAjzkLPRPGHuWC1+XLGTwA5NHZbl+F/Qo410h2v6niQ3Qh2UT9G/ro pcqYjkc3KwUebaYnAEOOn35tmDHlV6DfIgiBLJWNQwTY/LL8SbHjhFBbcjx6OXFbtfWa +by6/o2ktH9Qp1MLr5fIywVxdCr6pCCDPrQ0IQr1mDXOC/Tam6GQ7p9T11ALr0/4ZjtX ZXxg== X-Gm-Message-State: AOJu0Yxw9SNJ73nRJrsejpQ7Q80hBxo8/BdlGPI7eiUgWBuj76fwIWFN Zyt6leDv1eqrFS/npMXr4J5KGEtIuyM= X-Google-Smtp-Source: AGHT+IFo27RFU+RIW3E4xWkobMf6BOBtMeBPNHRqjfTuYHUMdcg0XyrkrjIEcbw9fHNxNHXbyLyTWw== X-Received: by 2002:a5d:554c:0:b0:336:5fd5:6bd2 with SMTP id g12-20020a5d554c000000b003365fd56bd2mr1192604wrw.127.1704461774526; Fri, 05 Jan 2024 05:36:14 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id o16-20020adfcf10000000b003364a0e6983sm1405804wrj.62.2024.01.05.05.36.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jan 2024 05:36:14 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-devel@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 1/2] python3-h5py: backport a cython 3.x compatibility patch Date: Fri, 5 Jan 2024 14:36:10 +0100 Message-Id: <20240105133611.3018041-1-alex@linutronix.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 05 Jan 2024 13:36:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/108047 Signed-off-by: Alexander Kanavin --- .../0001-Fix-Cython-3-compatibility.patch | 796 ++++++++++++++++++ .../python/python3-h5py_3.10.0.bb | 3 +- 2 files changed, 798 insertions(+), 1 deletion(-) create mode 100644 meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch diff --git a/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch b/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch new file mode 100644 index 000000000..aba62ddf1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-h5py/0001-Fix-Cython-3-compatibility.patch @@ -0,0 +1,796 @@ +From 1e02dbe5533d679b9ef064078a303607a7d0542a Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin +Date: Fri, 29 Dec 2023 14:33:38 +0100 +Subject: [PATCH] Fix Cython 3 compatibility + +Upstream-Status: Backport [https://github.com/h5py/h5py/pull/2345/commits] +Signed-off-by: Alexander Kanavin +--- + benchmarks/benchmark_slicing.py | 12 ++++---- + docs/conf.py | 2 +- + docs/high/dataset.rst | 4 +-- + docs/high/file.rst | 6 ++-- + docs/requirements-rtd.txt | 5 ++-- + docs/vds.rst | 2 +- + docs/whatsnew/3.0.rst | 2 +- + docs/whatsnew/3.7.rst | 4 +-- + h5py/_errors.pxd | 10 +++---- + h5py/_errors.pyx | 4 +-- + h5py/_hl/base.py | 4 +-- + h5py/_hl/dataset.py | 8 ++--- + h5py/_hl/dims.py | 3 +- + h5py/_hl/files.py | 2 +- + h5py/_locks.pxi | 6 ++-- + h5py/_proxy.pyx | 4 +-- + h5py/_selector.pyx | 2 +- + h5py/api_compat.h | 13 ++++---- + h5py/api_types_hdf5.pxd | 48 +++++++++++++++--------------- + h5py/h5fd.pyx | 38 ++++++++++++++++------- + h5py/h5p.pyx | 4 +-- + h5py/h5t.pyx | 2 +- + h5py/tests/test_attrs_data.py | 2 +- + h5py/tests/test_big_endian_file.py | 4 +-- + h5py/tests/test_dataset.py | 4 +-- + h5py/tests/test_file.py | 6 ++-- + h5py/tests/test_file_alignment.py | 4 +-- + h5py/tests/test_group.py | 4 +-- + h5py/tests/test_selections.py | 2 +- + pylintrc | 2 +- + pyproject.toml | 2 +- + setup_configure.py | 2 +- + tox.ini | 2 +- + 33 files changed, 116 insertions(+), 103 deletions(-) + +diff --git a/benchmarks/benchmark_slicing.py b/benchmarks/benchmark_slicing.py +index e9a34dad..b833f012 100644 +--- a/benchmarks/benchmark_slicing.py ++++ b/benchmarks/benchmark_slicing.py +@@ -7,7 +7,7 @@ import logging + logger = logging.getLogger(__name__) + import h5py + +-#Needed for mutithreading: ++#Needed for multithreading: + from queue import Queue + from threading import Thread, Event + import multiprocessing +@@ -173,8 +173,8 @@ class SlicingBenchmark: + + if __name__ == "__main__": + logging.basicConfig(level=logging.INFO) +- benckmark = SlicingBenchmark() +- benckmark.setup() +- benckmark.time_sequential_reads() +- benckmark.time_threaded_reads() +- benckmark.teardown() ++ benchmark = SlicingBenchmark() ++ benchmark.setup() ++ benchmark.time_sequential_reads() ++ benchmark.time_threaded_reads() ++ benchmark.teardown() +diff --git a/docs/conf.py b/docs/conf.py +index 93b23939..a0f6c1ac 100644 +--- a/docs/conf.py ++++ b/docs/conf.py +@@ -109,7 +109,7 @@ pygments_style = 'sphinx' + + # The theme to use for HTML and HTML Help pages. See the documentation for + # a list of builtin themes. +-html_theme = 'default' ++html_theme = 'sphinx_rtd_theme' + + # Theme options are theme-specific and customize the look and feel of a theme + # further. For a list of options available for each theme, see the +diff --git a/docs/high/dataset.rst b/docs/high/dataset.rst +index 0f27284f..cb75fffe 100644 +--- a/docs/high/dataset.rst ++++ b/docs/high/dataset.rst +@@ -58,7 +58,7 @@ the requested ``dtype``. + Reading & writing data + ---------------------- + +-HDF5 datasets re-use the NumPy slicing syntax to read and write to the file. ++HDF5 datasets reuse the NumPy slicing syntax to read and write to the file. + Slice specifications are translated directly to HDF5 "hyperslab" + selections, and are a fast and efficient way to access data in the file. The + following slicing arguments are recognized: +@@ -464,7 +464,7 @@ Reference + >>> dset = f["MyDS"] + >>> f.close() + >>> if dset: +- ... print("datset accessible") ++ ... print("dataset accessible") + ... else: + ... print("dataset inaccessible") + dataset inaccessible +diff --git a/docs/high/file.rst b/docs/high/file.rst +index 484498ce..e757fe1a 100644 +--- a/docs/high/file.rst ++++ b/docs/high/file.rst +@@ -392,7 +392,7 @@ Data alignment + When creating datasets within files, it may be advantageous to align the offset + within the file itself. This can help optimize read and write times if the data + become aligned with the underlying hardware, or may help with parallelism with +-MPI. Unfortunately, aligning small variables to large blocks can leave alot of ++MPI. Unfortunately, aligning small variables to large blocks can leave a lot of + empty space in a file. To this effect, application developers are left with two + options to tune the alignment of data within their file. The two variables + ``alignment_threshold`` and ``alignment_interval`` in the :class:`File` +@@ -415,7 +415,7 @@ number of regions. Setting a small value can reduce the overall file size, + especially in combination with the ``libver`` option. This controls how the + overall data and metadata are laid out within the file. + +-For more information, see the offical HDF5 documentation `H5P_SET_META_BLOCK_SIZE ++For more information, see the official HDF5 documentation `H5P_SET_META_BLOCK_SIZE + `_. + + Reference +@@ -497,7 +497,7 @@ Reference + Only available with HDF5 >= 1.12.1 or 1.10.x >= 1.10.7. + :param alignment_threshold: Together with ``alignment_interval``, this + property ensures that any file object greater than or equal +- in size to the alignement threshold (in bytes) will be ++ in size to the alignment threshold (in bytes) will be + aligned on an address which is a multiple of alignment interval. + :param alignment_interval: This property should be used in conjunction with + ``alignment_threshold``. See the description above. For more +diff --git a/docs/requirements-rtd.txt b/docs/requirements-rtd.txt +index e67a3eee..52096927 100644 +--- a/docs/requirements-rtd.txt ++++ b/docs/requirements-rtd.txt +@@ -1,3 +1,2 @@ +-sphinx==4.3.0 +-sphinx_rtd_theme==1.0.0 +-readthedocs-sphinx-search==0.1.1 ++sphinx==7.2.6 ++sphinx_rtd_theme==1.3.0 +diff --git a/docs/vds.rst b/docs/vds.rst +index a9a7c7f6..bd47ad1c 100644 +--- a/docs/vds.rst ++++ b/docs/vds.rst +@@ -124,7 +124,7 @@ Reference + slice it to indicate which regions should be used in the virtual dataset. + + When `creating a virtual dataset `_, paths to sources present +- in the same file are changed to a ".", refering to the current file (see ++ in the same file are changed to a ".", referring to the current file (see + `H5Pset_virtual `_). + This will keep such sources valid in case the file is renamed. + +diff --git a/docs/whatsnew/3.0.rst b/docs/whatsnew/3.0.rst +index db30ad66..ff3c2bef 100644 +--- a/docs/whatsnew/3.0.rst ++++ b/docs/whatsnew/3.0.rst +@@ -44,7 +44,7 @@ New features + See also the deprecation related to the ``external`` argument. + * Support for setting file space strategy at file creation. Includes option to + persist empty space tracking between sessions. See :class:`.File` for details. +-* More efficient writing when assiging a scalar to a chunked dataset, when the ++* More efficient writing when assigning a scalar to a chunked dataset, when the + number of elements to write is no more than the size of one chunk. + * Introduced support for the split :ref:`file driver ` + (:pr:`1468`). +diff --git a/docs/whatsnew/3.7.rst b/docs/whatsnew/3.7.rst +index 27790254..2e822d68 100644 +--- a/docs/whatsnew/3.7.rst ++++ b/docs/whatsnew/3.7.rst +@@ -19,7 +19,7 @@ New features + include it. Alternatively, you can :ref:`build h5py from source ` + against an HDF5 build with the direct driver enabled. + * The :class:`.File` constructor contains two new parameters ``alignment_threshold``, +- and ``alignment_interval`` controling the data alignment within the HDF5 ++ and ``alignment_interval`` controlling the data alignment within the HDF5 + file (:pr:`2040`). + * :meth:`~.Group.create_dataset` and :meth:`~.Group.require_dataset` now accept + parameters ``efile_prefix`` and ``virtual_prefix`` to set a filesystem path +@@ -40,7 +40,7 @@ Bug fixes + attributes with ``track_order=True``. + * Fix for building with mpi4py on Python 3.10 (:pr:`2101`). + * Fixed fancy indexing with a boolean array for a single dimension (:pr:`2079`). +-* Avoid returning unitialised memory when reading from a chunked dataset with ++* Avoid returning uninitialised memory when reading from a chunked dataset with + missing chunks and no fill value (:pr:`2076`). + * Enable setting of fillvalue for datasets with variable length string dtype + (:pr:`2044`). +diff --git a/h5py/_errors.pxd b/h5py/_errors.pxd +index df9c1bbe..3cba6307 100644 +--- a/h5py/_errors.pxd ++++ b/h5py/_errors.pxd +@@ -23,7 +23,7 @@ cdef extern from "hdf5.h": + H5E_ARGS, # invalid arguments to routine + H5E_RESOURCE, # resource unavailable + H5E_INTERNAL, # Internal error (too specific to document) +- H5E_FILE, # file Accessability ++ H5E_FILE, # file Accessibility + H5E_IO, # Low-level I/O + H5E_FUNC, # function Entry/Exit + H5E_ATOM, # object Atom +@@ -121,7 +121,7 @@ cdef extern from "hdf5.h": + # No error + H5E_NONE_MINOR # No error + +- # File accessability errors ++ # File accessibility errors + H5E_FILEEXISTS # File already exists + H5E_FILEOPEN # File already open + H5E_CANTCREATE # Unable to create file +@@ -207,7 +207,7 @@ cdef extern from "hdf5.h": + H5E_ARGS, # invalid arguments to routine + H5E_RESOURCE, # resource unavailable + H5E_INTERNAL, # Internal error (too specific to document) +- H5E_FILE, # file Accessability ++ H5E_FILE, # file Accessibility + H5E_IO, # Low-level I/O + H5E_FUNC, # function Entry/Exit + H5E_ID, # object ID +@@ -305,7 +305,7 @@ cdef extern from "hdf5.h": + # No error + H5E_NONE_MINOR # No error + +- # File accessability errors ++ # File accessibility errors + H5E_FILEEXISTS # File already exists + H5E_FILEOPEN # File already open + H5E_CANTCREATE # Unable to create file +@@ -425,4 +425,4 @@ ctypedef struct err_cookie: + cdef err_cookie set_error_handler(err_cookie handler) + + # Set the default error handler set by silence_errors/unsilence_errors +-cdef void set_default_error_handler() nogil ++cdef void set_default_error_handler() noexcept nogil +diff --git a/h5py/_errors.pyx b/h5py/_errors.pyx +index c3bd184e..2a7524b2 100644 +--- a/h5py/_errors.pyx ++++ b/h5py/_errors.pyx +@@ -94,7 +94,7 @@ cdef struct err_data_t: + H5E_error_t err + int n + +-cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) nogil noexcept: ++cdef herr_t walk_cb(unsigned int n, const H5E_error_t *desc, void *e) noexcept nogil: + + cdef err_data_t *ee = e + +@@ -168,7 +168,7 @@ cdef err_cookie _error_handler # Store error handler used by h5py + _error_handler.func = NULL + _error_handler.data = NULL + +-cdef void set_default_error_handler() nogil: ++cdef void set_default_error_handler() noexcept nogil: + """Set h5py's current default error handler""" + H5Eset_auto(H5E_DEFAULT, _error_handler.func, _error_handler.data) + +diff --git a/h5py/_hl/base.py b/h5py/_hl/base.py +index cad37053..9d261c90 100644 +--- a/h5py/_hl/base.py ++++ b/h5py/_hl/base.py +@@ -20,7 +20,7 @@ import posixpath + import numpy as np + + # The high-level interface is serialized; every public API function & method +-# is wrapped in a lock. We re-use the low-level lock because (1) it's fast, ++# is wrapped in a lock. We reuse the low-level lock because (1) it's fast, + # and (2) it eliminates the possibility of deadlocks due to out-of-order + # lock acquisition. + from .._objects import phil, with_phil +@@ -524,7 +524,7 @@ def product(nums): + # Daniel Greenfeld, BSD license), where it is attributed to bottle (Copyright + # (c) 2009-2022, Marcel Hellkamp, MIT license). + +-class cached_property(object): ++class cached_property: + def __init__(self, func): + self.__doc__ = getattr(func, "__doc__") + self.func = func +diff --git a/h5py/_hl/dataset.py b/h5py/_hl/dataset.py +index b69aba48..77b202d2 100644 +--- a/h5py/_hl/dataset.py ++++ b/h5py/_hl/dataset.py +@@ -334,10 +334,10 @@ class ChunkIterator: + self._layout = dset.chunks + if source_sel is None: + # select over entire dataset +- slices = [] +- for dim in range(rank): +- slices.append(slice(0, self._shape[dim])) +- self._sel = tuple(slices) ++ self._sel = tuple( ++ slice(0, self._shape[dim]) ++ for dim in range(rank) ++ ) + else: + if isinstance(source_sel, slice): + self._sel = (source_sel,) +diff --git a/h5py/_hl/dims.py b/h5py/_hl/dims.py +index d3c9206b..0cf4c9f3 100644 +--- a/h5py/_hl/dims.py ++++ b/h5py/_hl/dims.py +@@ -53,8 +53,7 @@ class DimensionProxy(base.CommonStateObject): + + @with_phil + def __iter__(self): +- for k in self.keys(): +- yield k ++ yield from self.keys() + + @with_phil + def __len__(self): +diff --git a/h5py/_hl/files.py b/h5py/_hl/files.py +index aa4fb78d..bfcf3098 100644 +--- a/h5py/_hl/files.py ++++ b/h5py/_hl/files.py +@@ -480,7 +480,7 @@ class File(Group): + + alignment_threshold + Together with ``alignment_interval``, this property ensures that +- any file object greater than or equal in size to the alignement ++ any file object greater than or equal in size to the alignment + threshold (in bytes) will be aligned on an address which is a + multiple of alignment interval. + +diff --git a/h5py/_locks.pxi b/h5py/_locks.pxi +index bc8b2dd9..1ec4e2fc 100644 +--- a/h5py/_locks.pxi ++++ b/h5py/_locks.pxi +@@ -63,7 +63,7 @@ cdef class FastRLock: + return self._owner == pythread.PyThread_get_thread_ident() + + +-cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) nogil: ++cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) noexcept nogil: + # Note that this function *must* hold the GIL when being called. + # We just use 'nogil' in the signature to make sure that no Python + # code execution slips in that might free the GIL +@@ -83,7 +83,7 @@ cdef inline bint lock_lock(FastRLock lock, long current_thread, bint blocking) n + lock, current_thread, + pythread.WAIT_LOCK if blocking else pythread.NOWAIT_LOCK) + +-cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil: ++cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) noexcept nogil: + # Note that this function *must* hold the GIL when being called. + # We just use 'nogil' in the signature to make sure that no Python + # code execution slips in that might free the GIL +@@ -111,7 +111,7 @@ cdef bint _acquire_lock(FastRLock lock, long current_thread, int wait) nogil: + lock._count = 1 + return 1 + +-cdef inline void unlock_lock(FastRLock lock) nogil: ++cdef inline void unlock_lock(FastRLock lock) noexcept nogil: + # Note that this function *must* hold the GIL when being called. + # We just use 'nogil' in the signature to make sure that no Python + # code execution slips in that might free the GIL +diff --git a/h5py/_proxy.pyx b/h5py/_proxy.pyx +index 46b4fe0d..e40504f5 100644 +--- a/h5py/_proxy.pyx ++++ b/h5py/_proxy.pyx +@@ -241,7 +241,7 @@ ctypedef struct h5py_scatter_t: + void* buf + + cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim, +- const hsize_t *point, void *operator_data) nogil except -1: ++ const hsize_t *point, void *operator_data) except -1 nogil: + cdef h5py_scatter_t* info = operator_data + + memcpy(elem, (info[0].buf)+((info[0].i)*(info[0].elsize)), +@@ -252,7 +252,7 @@ cdef herr_t h5py_scatter_cb(void* elem, hid_t type_id, unsigned ndim, + return 0 + + cdef herr_t h5py_gather_cb(void* elem, hid_t type_id, unsigned ndim, +- const hsize_t *point, void *operator_data) nogil except -1: ++ const hsize_t *point, void *operator_data) except -1 nogil: + cdef h5py_scatter_t* info = operator_data + + memcpy((info[0].buf)+((info[0].i)*(info[0].elsize)), elem, +diff --git a/h5py/_selector.pyx b/h5py/_selector.pyx +index 8b858c82..69970176 100644 +--- a/h5py/_selector.pyx ++++ b/h5py/_selector.pyx +@@ -341,7 +341,7 @@ cdef class Reader: + + arr = PyArray_ZEROS(arr_rank, arr_shape, self.np_typenum, 0) + if not self.native_byteorder: +- arr = arr.newbyteorder() ++ arr = arr.view(arr.dtype.newbyteorder()) + finally: + efree(arr_shape) + +diff --git a/h5py/api_compat.h b/h5py/api_compat.h +index 52917f4d..a359e827 100644 +--- a/h5py/api_compat.h ++++ b/h5py/api_compat.h +@@ -24,7 +24,6 @@ typedef void *PyMPI_MPI_Message; + #include + #include "Python.h" + #include "numpy/arrayobject.h" +-#include "hdf5.h" + + /* The HOFFSET macro can't be used from Cython. */ + +@@ -35,14 +34,14 @@ typedef void *PyMPI_MPI_Message; + #define h5py_size_n256 (sizeof(npy_complex256)) + #endif + +-#define h5py_offset_n64_real (HOFFSET(npy_complex64, real)) +-#define h5py_offset_n64_imag (HOFFSET(npy_complex64, imag)) +-#define h5py_offset_n128_real (HOFFSET(npy_complex128, real)) +-#define h5py_offset_n128_imag (HOFFSET(npy_complex128, imag)) ++#define h5py_offset_n64_real (0) ++#define h5py_offset_n64_imag (sizeof(float)) ++#define h5py_offset_n128_real (0) ++#define h5py_offset_n128_imag (sizeof(double)) + + #ifdef NPY_COMPLEX256 +-#define h5py_offset_n256_real (HOFFSET(npy_complex256, real)) +-#define h5py_offset_n256_imag (HOFFSET(npy_complex256, imag)) ++#define h5py_offset_n256_real (0) ++#define h5py_offset_n256_imag (sizeof(long double)) + #endif + + #endif +diff --git a/h5py/api_types_hdf5.pxd b/h5py/api_types_hdf5.pxd +index a198f105..099e0f58 100644 +--- a/h5py/api_types_hdf5.pxd ++++ b/h5py/api_types_hdf5.pxd +@@ -257,27 +257,27 @@ cdef extern from "hdf5.h": + herr_t (*sb_encode)(H5FD_t *file, char *name, unsigned char *p) + herr_t (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p) + size_t fapl_size +- void * (*fapl_get)(H5FD_t *file) +- void * (*fapl_copy)(const void *fapl) +- herr_t (*fapl_free)(void *fapl) ++ void * (*fapl_get)(H5FD_t *file) except * ++ void * (*fapl_copy)(const void *fapl) except * ++ herr_t (*fapl_free)(void *fapl) except -1 + size_t dxpl_size + void * (*dxpl_copy)(const void *dxpl) + herr_t (*dxpl_free)(void *dxpl) +- H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) +- herr_t (*close)(H5FD_t *file) ++ H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except * ++ herr_t (*close)(H5FD_t *file) except -1 + int (*cmp)(const H5FD_t *f1, const H5FD_t *f2) + herr_t (*query)(const H5FD_t *f1, unsigned long *flags) + herr_t (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map) + haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size) + herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size) +- haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) +- herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) +- haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) ++ haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept ++ herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept ++ haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1 + herr_t (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle) +- herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) +- herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) +- herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) +- herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) ++ herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except * ++ herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except * ++ herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 ++ herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 + herr_t (*lock)(H5FD_t *file, hbool_t rw) + herr_t (*unlock)(H5FD_t *file) + H5FD_mem_t fl_map[H5FD_MEM_NTYPES] +@@ -295,27 +295,27 @@ cdef extern from "hdf5.h": + herr_t (*sb_encode)(H5FD_t *file, char *name, unsigned char *p) + herr_t (*sb_decode)(H5FD_t *f, const char *name, const unsigned char *p) + size_t fapl_size +- void * (*fapl_get)(H5FD_t *file) +- void * (*fapl_copy)(const void *fapl) +- herr_t (*fapl_free)(void *fapl) ++ void * (*fapl_get)(H5FD_t *file) except * ++ void * (*fapl_copy)(const void *fapl) except * ++ herr_t (*fapl_free)(void *fapl) except -1 + size_t dxpl_size + void * (*dxpl_copy)(const void *dxpl) + herr_t (*dxpl_free)(void *dxpl) +- H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) +- herr_t (*close)(H5FD_t *file) ++ H5FD_t *(*open)(const char *name, unsigned flags, hid_t fapl, haddr_t maxaddr) except * ++ herr_t (*close)(H5FD_t *file) except -1 + int (*cmp)(const H5FD_t *f1, const H5FD_t *f2) + herr_t (*query)(const H5FD_t *f1, unsigned long *flags) + herr_t (*get_type_map)(const H5FD_t *file, H5FD_mem_t *type_map) + haddr_t (*alloc)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, hsize_t size) + herr_t (*free)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr, hsize_t size) +- haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) +- herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) +- haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) ++ haddr_t (*get_eoa)(const H5FD_t *file, H5FD_mem_t type) noexcept ++ herr_t (*set_eoa)(H5FD_t *file, H5FD_mem_t type, haddr_t addr) noexcept ++ haddr_t (*get_eof)(const H5FD_t *file, H5FD_mem_t type) except -1 + herr_t (*get_handle)(H5FD_t *file, hid_t fapl, void**file_handle) +- herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) +- herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) +- herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) +- herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) ++ herr_t (*read)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, void *buffer) except * ++ herr_t (*write)(H5FD_t *file, H5FD_mem_t type, hid_t dxpl, haddr_t addr, size_t size, const void *buffer) except * ++ herr_t (*flush)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 ++ herr_t (*truncate)(H5FD_t *file, hid_t dxpl_id, hbool_t closing) except -1 + herr_t (*lock)(H5FD_t *file, hbool_t rw) + herr_t (*unlock)(H5FD_t *file) + H5FD_mem_t fl_map[H5FD_MEM_NTYPES] +diff --git a/h5py/h5fd.pyx b/h5py/h5fd.pyx +index e9746057..d39cf68f 100644 +--- a/h5py/h5fd.pyx ++++ b/h5py/h5fd.pyx +@@ -144,10 +144,10 @@ cdef herr_t H5FD_fileobj_close(H5FD_fileobj_t *f) except -1 with gil: + stdlib_free(f) + return 0 + +-cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type): ++cdef haddr_t H5FD_fileobj_get_eoa(const H5FD_fileobj_t *f, H5FD_mem_t type) noexcept nogil: + return f.eoa + +-cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr): ++cdef herr_t H5FD_fileobj_set_eoa(H5FD_fileobj_t *f, H5FD_mem_t type, haddr_t addr) noexcept nogil: + f.eoa = addr + return 0 + +@@ -191,22 +191,38 @@ cdef herr_t H5FD_fileobj_flush(H5FD_fileobj_t *f, hid_t dxpl, hbool_t closing) e + cdef H5FD_class_t info + memset(&info, 0, sizeof(info)) + ++# Cython doesn't support "except X" in casting definition currently ++ctypedef herr_t (*file_free_func_ptr)(void *) except -1 ++ ++ctypedef herr_t (*file_close_func_ptr)(H5FD_t *) except -1 ++ctypedef haddr_t (*file_get_eoa_func_ptr)(const H5FD_t *, H5FD_mem_t) noexcept ++ctypedef herr_t (*file_set_eof_func_ptr)(H5FD_t *, H5FD_mem_t, haddr_t) noexcept ++ctypedef haddr_t (*file_get_eof_func_ptr)(const H5FD_t *, H5FD_mem_t) except -1 ++ctypedef herr_t (*file_read_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, void*) except -1 ++ctypedef herr_t (*file_write_func_ptr)(H5FD_t *, H5FD_mem_t, hid_t, haddr_t, size_t, const void*) except -1 ++ctypedef herr_t (*file_truncate_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1 ++ctypedef herr_t (*file_flush_func_ptr)(H5FD_t *, hid_t, hbool_t) except -1 ++ ++ + info.name = 'fileobj' + info.maxaddr = libc.stdint.SIZE_MAX - 1 + info.fc_degree = H5F_CLOSE_WEAK + info.fapl_size = sizeof(PyObject *) + info.fapl_get = H5FD_fileobj_fapl_get + info.fapl_copy = H5FD_fileobj_fapl_copy +-info.fapl_free = H5FD_fileobj_fapl_free ++ ++info.fapl_free = H5FD_fileobj_fapl_free ++ + info.open = H5FD_fileobj_open +-info.close = H5FD_fileobj_close +-info.get_eoa = H5FD_fileobj_get_eoa +-info.set_eoa = H5FD_fileobj_set_eoa +-info.get_eof = H5FD_fileobj_get_eof +-info.read = H5FD_fileobj_read +-info.write = H5FD_fileobj_write +-info.truncate = H5FD_fileobj_truncate +-info.flush = H5FD_fileobj_flush ++ ++info.close = H5FD_fileobj_close ++info.get_eoa = H5FD_fileobj_get_eoa ++info.set_eoa = H5FD_fileobj_set_eoa ++info.get_eof = H5FD_fileobj_get_eof ++info.read = H5FD_fileobj_read ++info.write = H5FD_fileobj_write ++info.truncate = H5FD_fileobj_truncate ++info.flush = H5FD_fileobj_flush + # H5FD_FLMAP_DICHOTOMY + info.fl_map = [H5FD_MEM_SUPER, # default + H5FD_MEM_SUPER, # super +diff --git a/h5py/h5p.pyx b/h5py/h5p.pyx +index 779ea1b5..dc8bf65a 100644 +--- a/h5py/h5p.pyx ++++ b/h5py/h5p.pyx +@@ -1177,7 +1177,7 @@ cdef class PropFAID(PropInstanceID): + size_t block_size IN: File system block size + size_t cbuf_size IN: Copy buffer size + +- Properites with value of 0 indicate that the HDF5 library should ++ Properties with value of 0 indicate that the HDF5 library should + choose the value. + """ + H5Pset_fapl_direct(self.id, alignment, block_size, cbuf_size) +@@ -1761,7 +1761,7 @@ cdef class PropOCID(PropCreateID): + + max_compact -- maximum number of attributes to be stored in compact storage(default:8) + must be greater than or equal to min_dense +- min_dense -- minmum number of attributes to be stored in dense storage(default:6) ++ min_dense -- minimum number of attributes to be stored in dense storage(default:6) + + """ + H5Pset_attr_phase_change(self.id, max_compact, min_dense) +diff --git a/h5py/h5t.pyx b/h5py/h5t.pyx +index e7aae14f..b9d7e74d 100644 +--- a/h5py/h5t.pyx ++++ b/h5py/h5t.pyx +@@ -1938,7 +1938,7 @@ def check_dtype(**kwds): + + vlen = dtype + If the dtype represents an HDF5 vlen, returns the Python base class. +- Currently only builting string vlens (str) are supported. Returns ++ Currently only built-in string vlens (str) are supported. Returns + None if the dtype does not represent an HDF5 vlen. + + enum = dtype +diff --git a/h5py/tests/test_attrs_data.py b/h5py/tests/test_attrs_data.py +index 56481ca0..5083a1aa 100644 +--- a/h5py/tests/test_attrs_data.py ++++ b/h5py/tests/test_attrs_data.py +@@ -262,7 +262,7 @@ class TestEmpty(BaseAttrs): + self.assertTrue(is_empty_dataspace(h5a.open(self.f.id, b'y'))) + + def test_modify(self): +- with self.assertRaises(IOError): ++ with self.assertRaises(OSError): + self.f.attrs.modify('x', 1) + + def test_values(self): +diff --git a/h5py/tests/test_big_endian_file.py b/h5py/tests/test_big_endian_file.py +index 4d81de01..170b5bcc 100644 +--- a/h5py/tests/test_big_endian_file.py ++++ b/h5py/tests/test_big_endian_file.py +@@ -24,14 +24,14 @@ def test_vlen_big_endian(): + assert dset[4] == 1.2 + assert dset.dtype == "f8" + + assert f["DSLEint"][0] == 1 + assert f["DSLEint"].dtype == "i8" + +diff --git a/h5py/tests/test_dataset.py b/h5py/tests/test_dataset.py +index e104dd53..0ffa5c80 100644 +--- a/h5py/tests/test_dataset.py ++++ b/h5py/tests/test_dataset.py +@@ -1939,9 +1939,9 @@ class TestCommutative(BaseDataset): + dset = self.f.create_dataset("test", shape, dtype=float, + data=np.random.rand(*shape)) + +- # grab a value from the elements, ie dset[0] ++ # grab a value from the elements, ie dset[0, 0] + # check that mask arrays are commutative wrt ==, != +- val = np.float64(dset[0]) ++ val = np.float64(dset[0, 0]) + + assert np.all((val == dset) == (dset == val)) + assert np.all((val != dset) == (dset != val)) +diff --git a/h5py/tests/test_file.py b/h5py/tests/test_file.py +index b47d408e..1aa38731 100644 +--- a/h5py/tests/test_file.py ++++ b/h5py/tests/test_file.py +@@ -326,7 +326,7 @@ class TestDrivers(TestCase): + # could be an integer multiple of 512 + # + # To allow HDF5 to do the heavy lifting for different platform, +- # We didn't provide any argumnets to the first call ++ # We didn't provide any arguments to the first call + # and obtained HDF5's default values there. + + # Testing creation with a few different property lists +@@ -639,9 +639,9 @@ class TestUnicode(TestCase): + Modes 'r' and 'r+' do not create files even when given unicode names + """ + fname = self.mktemp(prefix=chr(0x201a)) +- with self.assertRaises(IOError): ++ with self.assertRaises(OSError): + File(fname, 'r') +- with self.assertRaises(IOError): ++ with self.assertRaises(OSError): + File(fname, 'r+') + + +diff --git a/h5py/tests/test_file_alignment.py b/h5py/tests/test_file_alignment.py +index c280bb76..da13ee04 100644 +--- a/h5py/tests/test_file_alignment.py ++++ b/h5py/tests/test_file_alignment.py +@@ -50,7 +50,7 @@ class TestFileAlignment(TestCase): + alignment_interval = 4096 + + for shape in [ +- (1033,), # A prime number above the thresold ++ (1033,), # A prime number above the threshold + (1000,), # Exactly equal to the threshold + (1001,), # one above the threshold + ]: +@@ -75,7 +75,7 @@ class TestFileAlignment(TestCase): + alignment_interval = 1024 + + for shape in [ +- (881,), # A prime number below the thresold ++ (881,), # A prime number below the threshold + (999,), # Exactly one below the threshold + ]: + fname = self.mktemp() +diff --git a/h5py/tests/test_group.py b/h5py/tests/test_group.py +index 328c352a..4af1fb1f 100644 +--- a/h5py/tests/test_group.py ++++ b/h5py/tests/test_group.py +@@ -771,7 +771,7 @@ class TestExternalLinks(TestCase): + with self.assertRaises(KeyError): + self.f['ext'] + +- # I would prefer IOError but there's no way to fix this as the exception ++ # I would prefer OSError but there's no way to fix this as the exception + # class is determined by HDF5. + def test_exc_missingfile(self): + """ KeyError raised when attempting to open missing file """ +@@ -844,7 +844,7 @@ class TestExtLinkBugs(TestCase): + try: + if x: + x.close() +- except IOError: ++ except OSError: + pass + return w + orig_name = self.mktemp() +diff --git a/h5py/tests/test_selections.py b/h5py/tests/test_selections.py +index 0b1722d7..01f6dcb7 100644 +--- a/h5py/tests/test_selections.py ++++ b/h5py/tests/test_selections.py +@@ -65,7 +65,7 @@ class TestTypeGeneration(BaseSelection): + self.assertEqual(out, np.dtype('i')) + self.assertEqual(format, np.dtype( [('a','i')] )) + +- # Field does not apear in named typed ++ # Field does not appear in named typed + with self.assertRaises(ValueError): + out, format = sel2.read_dtypes(dt, ('j', 'k')) + +diff --git a/pylintrc b/pylintrc +index 045df2f7..2401d3b0 100644 +--- a/pylintrc ++++ b/pylintrc +@@ -44,7 +44,7 @@ confidence= + # can either give multiple identifiers separated by comma (,) or put this + # option multiple times (only on the command line, not in the configuration + # file where it should appear only once).You can also use "--disable=all" to +-# disable everything first and then reenable specific checks. For example, if ++# disable everything first and then re-enable specific checks. For example, if + # you want to run only the similarities checker, you can use "--disable=all + # --enable=similarities". If you want to run only the classes checker, but have + # no Warning level messages displayed, use"--disable=all --enable=classes +diff --git a/pyproject.toml b/pyproject.toml +index ee573d2f..717200ef 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -1,6 +1,6 @@ + [build-system] + requires = [ +- "Cython >=0.29.31,<1", ++ "Cython >=0.29.31,<4", + "oldest-supported-numpy", + "pkgconfig", + "setuptools >=61", +diff --git a/setup_configure.py b/setup_configure.py +index 0fba53ba..c3b86a64 100644 +--- a/setup_configure.py ++++ b/setup_configure.py +@@ -165,7 +165,7 @@ class BuildConfig: + try: + if pkgconfig.exists(pc_name): + pc = pkgconfig.parse(pc_name) +- except EnvironmentError: ++ except OSError: + if os.name != 'nt': + print( + "Building h5py requires pkg-config unless the HDF5 path " +diff --git a/tox.ini b/tox.ini +index 0efb88a6..86a176dd 100644 +--- a/tox.ini ++++ b/tox.ini +@@ -65,7 +65,7 @@ skip_install=True + package_env = DUMMY NON-EXISTENT ENV NAME + changedir=docs + deps= +- sphinx ++ -r docs/requirements-rtd.txt + commands= + sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html + diff --git a/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb b/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb index e77210685..8a9158525 100644 --- a/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb +++ b/meta-python/recipes-devtools/python/python3-h5py_3.10.0.bb @@ -6,7 +6,8 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=113251d71fb0384712c719b567261c5c" SRC_URI[sha256sum] = "d93adc48ceeb33347eb24a634fb787efc7ae4644e6ea4ba733d099605045c049" -SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch" +SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.patch \ + file://0001-Fix-Cython-3-compatibility.patch" inherit pkgconfig pypi setuptools3 From patchwork Fri Jan 5 13:36:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kanavin X-Patchwork-Id: 37375 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37ED8C3DA6E for ; Fri, 5 Jan 2024 13:36:26 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by mx.groups.io with SMTP id smtpd.web10.23447.1704461776719068481 for ; Fri, 05 Jan 2024 05:36:17 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20230601 header.b=VTqss4iI; spf=pass (domain: gmail.com, ip: 209.85.128.42, mailfrom: alex.kanavin@gmail.com) Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-40e3ab65709so2598605e9.3 for ; Fri, 05 Jan 2024 05:36:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704461775; x=1705066575; darn=lists.openembedded.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MiInaai25HFDpCF3wHCPm4kpFnmdcEbEXzAXJ4eL3Xc=; b=VTqss4iI7X116XOZekMgULoJJ30G3g2NGngKopzx3GCwkuCs5wpafbjASxsBB/MduY UDfAVa+pvJFucZ/qIOuagJLONfz97j1xjcJD7t/RbbzINhC3r/Hxk/nmwWu6dS85/ETJ rha+3B/ItKv3RYzhvXO7gwTDIbs7G80H4LiYXqRwXtAHbpRy/EdPymqDrz0MBciE1xNb kLxNXuOtDsY3qvHBuitYsboY6ascwBoXkIzjgfKj+lCcf+yY468X4J+6xVejIlo72MYM 7TMnm20kyQtu+XN14ECxugSYAldfjZJXPkOy4wUcjDx5vD3YF+F5FZanrHY5fjc11wja FG9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704461775; x=1705066575; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MiInaai25HFDpCF3wHCPm4kpFnmdcEbEXzAXJ4eL3Xc=; b=vw7PY+iKV2OMHCmCTqXamiZrWSSSPwQbpZQI2W+IV3eDvs72prvhdO9QTVG+04qiJL /rCKIpAq8pJfE8CIgBleCsF83AEtzd7TZk+p2Mi8uNJA00L7iAtmC5bCukiidnCTS3nd 6BqBrhwFv4w/Lk2+IBeTOC9b/eO8KJlJTTw/2ucE/gXK0T58bEJzGhJDj4B4LFkQqYn6 TnYlnAgXGmD/Wbw4uTQcTHmfL9L2yKRC6YTygxwETNLpEK9QEGCj89YeGWGr4mEn0Jxt 1gUIn2CJET9HHUrbcZ2DWKg2gOM8eK9j6aJHFwFqXRjcOkMPAjpvp0UisnnGfyS++Yit 9Zvw== X-Gm-Message-State: AOJu0YyLduU9chgJ1sxcUcCfMqRAPupW6i9c/3BV7y/xkfdmahTecglv xJ8BB4dreCBG4LQF2brMVxGvy+XHz44= X-Google-Smtp-Source: AGHT+IEGku5G0jFnPUuMz0RuEWKt8q1vH4NWMJfKFjTkZGnNfF9KPL8MFNhZ4xNEcAeGwvk9Zjxk5g== X-Received: by 2002:a7b:c5cd:0:b0:40c:30fb:60ab with SMTP id n13-20020a7bc5cd000000b0040c30fb60abmr1362023wmk.134.1704461775065; Fri, 05 Jan 2024 05:36:15 -0800 (PST) Received: from Zen2.lab.linutronix.de. (drugstore.linutronix.de. [80.153.143.164]) by smtp.gmail.com with ESMTPSA id o16-20020adfcf10000000b003364a0e6983sm1405804wrj.62.2024.01.05.05.36.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jan 2024 05:36:14 -0800 (PST) From: Alexander Kanavin X-Google-Original-From: Alexander Kanavin To: openembedded-devel@lists.openembedded.org Cc: Alexander Kanavin Subject: [PATCH 2/2] python3-kivy: update 2.2.1 -> 2.3.0 Date: Fri, 5 Jan 2024 14:36:11 +0100 Message-Id: <20240105133611.3018041-2-alex@linutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240105133611.3018041-1-alex@linutronix.de> References: <20240105133611.3018041-1-alex@linutronix.de> MIME-Version: 1.0 List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 05 Jan 2024 13:36:26 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/108048 License-Update: years, mention that it is MIT at the start. Signed-off-by: Alexander Kanavin --- .../python/{python3-kivy_2.2.1.bb => python3-kivy_2.3.0.bb} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename meta-python/recipes-devtools/python/{python3-kivy_2.2.1.bb => python3-kivy_2.3.0.bb} (93%) diff --git a/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb b/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb similarity index 93% rename from meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb rename to meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb index a72ee14f6..0d4a1207f 100644 --- a/meta-python/recipes-devtools/python/python3-kivy_2.2.1.bb +++ b/meta-python/recipes-devtools/python/python3-kivy_2.3.0.bb @@ -2,7 +2,7 @@ SUMMARY = "Open source Python library for rapid development of applications \ that make use of innovative user interfaces, such as multi-touch apps." HOMEPAGE = "https://kivy.org/" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=ed5cd0f2cfda42852c332e3b88c85fea" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6d3bc49400e35d5a2279d14c40dcfb09" inherit setuptools3 pkgconfig features_check PIP_INSTALL_PACKAGE = "Kivy" @@ -11,11 +11,11 @@ PIP_INSTALL_PACKAGE = "Kivy" # and mali-based OS's. We need to patch the setup file to tell Kivy setup # that our machine has GLES libaries installed as well # Also, if using SDL2 as backend, SDL2 needs to be configured with gles -SRC_URI = "git://github.com/kivy/kivy.git;protocol=https;branch=stable \ +SRC_URI = "git://github.com/kivy/kivy.git;protocol=https;branch=master \ file://0001-add-support-for-glesv2.patch \ " -SRCREV = "344768bfefd2e8f5302cc9dfb8ca41991ce6f7e7" +SRCREV = "9ef218027178115a66b417ae34b21f488bdd3617" S = "${WORKDIR}/git"