Andrew Geissler | 87f5cff | 2022-09-30 13:13:31 -0500 | [diff] [blame] | 1 | From 5b0b1d0b941ba338d449f9261bdf4cb2b679d048 Mon Sep 17 00:00:00 2001 |
| 2 | From: Hongxu Jia <hongxu.jia@windriver.com> |
| 3 | Date: Tue, 20 Sep 2022 02:53:11 -0700 |
| 4 | Subject: [PATCH] fix wrong file driver version |
| 5 | |
| 6 | Due to commit [1] applied in hdf5 (1.13.2), import hdf5 failed |
| 7 | |
| 8 | |>>> import h5py |
| 9 | |Traceback (most recent call last): |
| 10 | | File "<stdin>", line 1, in <module> |
| 11 | | File "/usr/lib/python3.10/site-packages/h5py/__init__.py", line 56, in <module> |
| 12 | | from . import h5a, h5d, h5ds, h5f, h5fd, h5g, h5r, h5s, h5t, h5p, h5z, h5pl |
| 13 | | File "h5py/h5fd.pyx", line 220, in init h5py.h5fd |
| 14 | |RuntimeError: Wrong file driver version # (wrong file driver version #) |
| 15 | |
| 16 | Initial driver version to fix the error |
| 17 | |
| 18 | [1] https://github.com/HDFGroup/hdf5/commit/42b767fc67ad1e13735e3cee2077f2e108f9463e |
| 19 | |
| 20 | Upstream-Status: Submitted [https://github.com/h5py/h5py/pull/2153] |
| 21 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> |
| 22 | --- |
| 23 | h5py/api_types_hdf5.pxd | 1 + |
| 24 | h5py/h5fd.pyx | 1 + |
| 25 | 2 files changed, 2 insertions(+) |
| 26 | |
| 27 | diff --git a/h5py/api_types_hdf5.pxd b/h5py/api_types_hdf5.pxd |
| 28 | index 6977f1a7..312fdaa0 100644 |
| 29 | --- a/h5py/api_types_hdf5.pxd |
| 30 | +++ b/h5py/api_types_hdf5.pxd |
| 31 | @@ -237,6 +237,7 @@ cdef extern from "hdf5.h": |
| 32 | |
| 33 | # Class information for each file driver |
| 34 | ctypedef struct H5FD_class_t: |
| 35 | + unsigned version; |
| 36 | const char *name |
| 37 | haddr_t maxaddr |
| 38 | H5F_close_degree_t fc_degree |
| 39 | diff --git a/h5py/h5fd.pyx b/h5py/h5fd.pyx |
| 40 | index 04aff077..d41953d0 100644 |
| 41 | --- a/h5py/h5fd.pyx |
| 42 | +++ b/h5py/h5fd.pyx |
| 43 | @@ -191,6 +191,7 @@ cdef herr_t H5FD_fileobj_flush(H5FD_fileobj_t *f, hid_t dxpl, hbool_t closing) e |
| 44 | cdef H5FD_class_t info |
| 45 | memset(&info, 0, sizeof(info)) |
| 46 | |
| 47 | +info.version = 0x01 |
| 48 | info.name = 'fileobj' |
| 49 | info.maxaddr = libc.stdint.SIZE_MAX - 1 |
| 50 | info.fc_degree = H5F_CLOSE_WEAK |
| 51 | -- |
| 52 | 2.37.1 |
| 53 | |