Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-blosc2 for openSUSE:Factory checked in at 2023-09-25 20:04:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-blosc2 (Old) and /work/SRC/openSUSE:Factory/.python-blosc2.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-blosc2" Mon Sep 25 20:04:09 2023 rev:6 rq:1113433 version:2.2.7 Changes: -------- --- /work/SRC/openSUSE:Factory/python-blosc2/python-blosc2.changes 2023-08-23 14:59:33.470198629 +0200 +++ /work/SRC/openSUSE:Factory/.python-blosc2.new.1770/python-blosc2.changes 2023-09-25 20:57:14.643287923 +0200 @@ -1,0 +2,7 @@ +Mon Sep 18 09:17:34 UTC 2023 - Dirk Müller <dmuel...@suse.com> + +- update to 2.2.7: + * Updated to latest C-Blosc2 2.10.3. + * Added openhtj2k codec plugin. + +------------------------------------------------------------------- Old: ---- blosc2-2.2.6.tar.gz New: ---- blosc2-2.2.7.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-blosc2.spec ++++++ --- /var/tmp/diff_new_pack.Z2bnVR/_old 2023-09-25 20:57:15.795329541 +0200 +++ /var/tmp/diff_new_pack.Z2bnVR/_new 2023-09-25 20:57:15.795329541 +0200 @@ -17,7 +17,7 @@ Name: python-blosc2 -Version: 2.2.6 +Version: 2.2.7 Release: 0 Summary: Python wrapper for the C-Blosc2 library License: BSD-3-Clause ++++++ blosc2-2.2.6.tar.gz -> blosc2-2.2.7.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/ANNOUNCE.rst new/blosc2-2.2.7/ANNOUNCE.rst --- old/blosc2-2.2.6/ANNOUNCE.rst 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/ANNOUNCE.rst 2023-09-13 10:42:50.000000000 +0200 @@ -1,9 +1,9 @@ Announcing Python-Blosc2 2.2.6 ============================== -This is a maintenance release, where we have upgraded to latest C-Blosc2 2.10.1. -This provides fixes for dynamic plugins and the possibility to run them -in multithreading mode (see PR #127). +This is a maintenance release, where we have upgraded to latest C-Blosc2 2.10.3. +This provides the ability to use the blosc2_openhtj2k dynamic plugin +(see https://github.com/Blosc/blosc2_openhtj2k for more info on this). For more info, you can have a look at the release notes in: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/PKG-INFO new/blosc2-2.2.7/PKG-INFO --- old/blosc2-2.2.6/PKG-INFO 2023-08-01 14:36:59.405662500 +0200 +++ new/blosc2-2.2.7/PKG-INFO 2023-09-13 10:45:14.360038000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: blosc2 -Version: 2.2.6 +Version: 2.2.7 Summary: Python wrapper for the C-Blosc2 library Author-email: Blosc Development Team <bl...@blosc.org> Maintainer-email: Blosc Development Team <bl...@blosc.org> @@ -24,6 +24,10 @@ Requires-Python: <4,>=3.8 Description-Content-Type: text/x-rst License-File: LICENSE.txt +Requires-Dist: msgpack +Requires-Dist: ndindex>=1.4 +Requires-Dist: numpy>=1.20.3 +Requires-Dist: py-cpuinfo ============= Python-Blosc2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/RELEASE_NOTES.md new/blosc2-2.2.7/RELEASE_NOTES.md --- old/blosc2-2.2.6/RELEASE_NOTES.md 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/RELEASE_NOTES.md 2023-09-13 10:42:50.000000000 +0200 @@ -1,5 +1,14 @@ # Release notes +## Changes from 2.2.6 to 2.2.7 + +* Updated to latest C-Blosc2 2.10.3. + +* Added openhtj2k codec plugin. + +* Some small fixes regarding typos. + + ## Changes from 2.2.5 to 2.2.6 * Multithreading checks only apply to Python defined codecs and filters. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/RELEASING.rst new/blosc2-2.2.7/RELEASING.rst --- old/blosc2-2.2.6/RELEASING.rst 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/RELEASING.rst 2023-09-13 10:42:50.000000000 +0200 @@ -10,8 +10,8 @@ version that will be documented in the `RELEASE_NOTES.md`):: cd blosc2/c-blosc2 - git checkout <desired tag> git pull + git checkout <desired tag> cd ../.. git commit -m "Update c-blosc2 sources" blosc2/c-blosc2 git push diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/VERSION new/blosc2-2.2.7/VERSION --- old/blosc2-2.2.6/VERSION 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/VERSION 2023-09-13 10:42:50.000000000 +0200 @@ -1 +1 @@ -2.2.6 +2.2.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/__init__.py new/blosc2-2.2.7/blosc2/__init__.py --- old/blosc2-2.2.6/blosc2/__init__.py 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/__init__.py 2023-09-13 10:42:50.000000000 +0200 @@ -29,6 +29,7 @@ ZFP_ACC = 33 ZFP_PREC = 34 ZFP_RATE = 35 + OPENHTJ2K = 36 class Filter(Enum): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/blosc2_ext.pyx new/blosc2-2.2.7/blosc2/blosc2_ext.pyx --- old/blosc2-2.2.6/blosc2/blosc2_ext.pyx 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/blosc2_ext.pyx 2023-09-13 10:42:50.000000000 +0200 @@ -1477,8 +1477,8 @@ cdef user_filters_udata *udata = <user_filters_udata *> params.user_data cdef int nd = 1 cdef np.npy_intp dims = params.size // params.typesize - input = np.PyArray_SimpleNewFromData(nd, &dims, udata.input_cdtype, params.input) - output = np.PyArray_SimpleNewFromData(nd, &dims, udata.output_cdtype, params.output) + input = np.PyArray_SimpleNewFromData(nd, &dims, udata.input_cdtype, <void*>params.input) + output = np.PyArray_SimpleNewFromData(nd, &dims, udata.output_cdtype, <void*>params.output) offset = params.nchunk * udata.chunkshape + params.offset // params.typesize func_id = udata.py_func.decode("utf-8") blosc2.postfilter_funcs[func_id](input, output, offset) @@ -1493,7 +1493,7 @@ inputs_tuple = _ctypes.PyObj_FromPtr(udata.inputs_id) - output = np.PyArray_SimpleNewFromData(nd, &dims, udata.output_cdtype, params.output) + output = np.PyArray_SimpleNewFromData(nd, &dims, udata.output_cdtype, <void*>params.output) offset = params.nchunk * udata.chunkshape + params.output_offset // params.output_typesize inputs = [] @@ -1535,8 +1535,8 @@ cdef np.npy_intp dims = params.output_size // params.output_typesize - input = np.PyArray_SimpleNewFromData(nd, &dims, udata.input_cdtype, params.input) - output = np.PyArray_SimpleNewFromData(nd, &dims, udata.output_cdtype, params.output) + input = np.PyArray_SimpleNewFromData(nd, &dims, udata.input_cdtype, <void*>params.input) + output = np.PyArray_SimpleNewFromData(nd, &dims, udata.output_cdtype, <void*>params.output) offset = params.nchunk * udata.chunkshape + params.output_offset // params.output_typesize func_id = udata.py_func.decode("utf-8") @@ -1741,8 +1741,8 @@ cdef int nd = 1 cdef np.npy_intp input_dims = input_len cdef np.npy_intp output_dims = output_len - input = np.PyArray_SimpleNewFromData(nd, &input_dims, np.NPY_UINT8, input_buffer) - output = np.PyArray_SimpleNewFromData(nd, &output_dims, np.NPY_UINT8, output_buffer) + input = np.PyArray_SimpleNewFromData(nd, &input_dims, np.NPY_UINT8, <void*>input_buffer) + output = np.PyArray_SimpleNewFromData(nd, &output_dims, np.NPY_UINT8, <void*>output_buffer) cdef blosc2_schunk *sc = <blosc2_schunk *> cparams.schunk if sc != NULL: @@ -1763,8 +1763,8 @@ cdef int nd = 1 cdef np.npy_intp input_dims = input_len cdef np.npy_intp output_dims = output_len - input = np.PyArray_SimpleNewFromData(nd, &input_dims, np.NPY_UINT8, input_buffer) - output = np.PyArray_SimpleNewFromData(nd, &output_dims, np.NPY_UINT8, output_buffer) + input = np.PyArray_SimpleNewFromData(nd, &input_dims, np.NPY_UINT8, <void*>input_buffer) + output = np.PyArray_SimpleNewFromData(nd, &output_dims, np.NPY_UINT8, <void*>output_buffer) cdef blosc2_schunk *sc = <blosc2_schunk *> dparams.schunk if sc != NULL: @@ -1815,8 +1815,8 @@ uint8_t meta, blosc2_cparams* cparams, uint8_t id): cdef int nd = 1 cdef np.npy_intp dims = size - input = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, input_buffer) - output = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, output_buffer) + input = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, <void*>input_buffer) + output = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, <void*>output_buffer) cdef blosc2_schunk *sc = <blosc2_schunk *> cparams.schunk if sc != NULL: @@ -1832,8 +1832,8 @@ uint8_t meta, blosc2_dparams* dparams, uint8_t id): cdef int nd = 1 cdef np.npy_intp dims = size - input = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, input_buffer) - output = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, output_buffer) + input = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, <void*>input_buffer) + output = np.PyArray_SimpleNewFromData(nd, &dims, np.NPY_UINT8, <void*>output_buffer) cdef blosc2_schunk *sc = <blosc2_schunk *> dparams.schunk if sc != NULL: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/.github/workflows/cmake.yml new/blosc2-2.2.7/blosc2/c-blosc2/.github/workflows/cmake.yml --- old/blosc2-2.2.6/blosc2/c-blosc2/.github/workflows/cmake.yml 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/.github/workflows/cmake.yml 2023-09-13 10:42:51.000000000 +0200 @@ -105,7 +105,7 @@ compiler: gcc steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install packages (Ubuntu) if: runner.os == 'Linux' && matrix.packages diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/ANNOUNCE.md new/blosc2-2.2.7/blosc2/c-blosc2/ANNOUNCE.md --- old/blosc2-2.2.6/blosc2/c-blosc2/ANNOUNCE.md 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/ANNOUNCE.md 2023-09-13 10:42:51.000000000 +0200 @@ -1,12 +1,12 @@ -# Announcing C-Blosc2 2.10.1 +# Announcing C-Blosc2 2.10.2 A fast, compressed and persistent binary data store library for C. ## What is new? -This is a maintenance release with also several improvements for helping -integration of C-Blosc2 in other projects (thanks to Alex Huebel). Also, -`blosc2_remove_urlpath(const char *urlpath)` does not return an error -when path does not exist. +This is a maintenance release with also several improvements like the registration of +the dynamically loaded codec blosc2_openhtj2k. See https://github.com/Blosc/blosc2_openhtj2k +for more info on how to use it. Also, +the `BLOSC_INFO` macro has been added for details on compression params. For more info, please see the release notes in: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/Blosc2Config.cmake.in new/blosc2-2.2.7/blosc2/c-blosc2/Blosc2Config.cmake.in --- old/blosc2-2.2.6/blosc2/c-blosc2/Blosc2Config.cmake.in 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/Blosc2Config.cmake.in 2023-09-13 10:42:51.000000000 +0200 @@ -9,10 +9,10 @@ endif() # locate the installed FindABC.cmake modules -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules") # this section stores which configuration options were set -set(HAVE_THREADS @Threads_FOUND@) +set(HAVE_THREADS @HAVE_THREADS@) set(HAVE_IPP @HAVE_IPP@) set(HAVE_ZLIB_NG @HAVE_ZLIB_NG@) set(DEACTIVATE_IPP @DEACTIVATE_IPP@) @@ -26,16 +26,13 @@ # additionally, the Blosc2_..._FOUND variables are used to support # find_package(Blosc2 ... COMPONENTS ... ...) # this enables downstream projects to express the need for specific features. -if(WIN32) - if(HAVE_THREADS) - find_dependency(Threads) - set(Blosc2_THREADS_FOUND TRUE) - else() - set(Blosc2_THREADS_FOUND FALSE) - endif() -else() +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) # pre 3.1 +set(THREADS_PREFER_PTHREAD_FLAG TRUE) # CMake 3.1+ +if(HAVE_THREADS) find_dependency(Threads) set(Blosc2_THREADS_FOUND TRUE) +else() + set(Blosc2_THREADS_FOUND FALSE) endif() if(NOT DEACTIVATE_IPP AND HAVE_IPP) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/CMakeLists.txt new/blosc2-2.2.7/blosc2/c-blosc2/CMakeLists.txt --- old/blosc2-2.2.6/blosc2/c-blosc2/CMakeLists.txt 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/CMakeLists.txt 2023-09-13 10:42:51.000000000 +0200 @@ -151,6 +151,21 @@ set(DEACTIVATE_ZSTD ON) endif() +# Threads +set(CMAKE_THREAD_PREFER_PTHREAD TRUE) # pre 3.1 +set(THREADS_PREFER_PTHREAD_FLAG TRUE) # CMake 3.1+ +if(WIN32) + # try to use the system library + find_package(Threads) +else() + find_package(Threads REQUIRED) +endif() +if(Threads_FOUND) + set(HAVE_THREADS ON) +else() + set(HAVE_THREADS OFF) +endif() + if(PREFER_EXTERNAL_LZ4) find_package(LZ4) else() @@ -474,7 +489,7 @@ if(CMAKE_INSTALL_CMAKEDIR) set(Blosc2_INSTALL_CMAKEDIR "${CMAKE_INSTALL_CMAKEDIR}/Blosc2") else() - if(WIN32) + if(WIN32 AND NOT MINGW) set(Blosc2_INSTALL_CMAKEDIR "cmake") else() set(Blosc2_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/Blosc2") @@ -520,6 +535,12 @@ DESTINATION ${Blosc2_INSTALL_CMAKEDIR} ) + # CMake Find*.cmake files used in Blosc2Config.cmake + install( + DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/cmake/ + DESTINATION ${Blosc2_INSTALL_CMAKEDIR}/Modules + ) + # pkg-config .pc file configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/blosc2.pc.in" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/RELEASE_NOTES.md new/blosc2-2.2.7/blosc2/c-blosc2/RELEASE_NOTES.md --- old/blosc2-2.2.6/blosc2/c-blosc2/RELEASE_NOTES.md 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/RELEASE_NOTES.md 2023-09-13 10:42:51.000000000 +0200 @@ -1,6 +1,28 @@ Release notes for C-Blosc2 ========================== +Changes from 2.10.2 to 2.10.3 +============================= + +* Globally registered new codec `openhtj2k`. This will be loaded dynamically. See PR #557. + +* Added a `BLOSC_INFO` macro for details on compression params. + +* Added `get_blocksize.c` example on automatic blocksizes. + +* Warning fixes. + +* Fixes for mingw. + + +Changes from 2.10.1 to 2.10.2 +============================= + +* Several fixes for the CMake system. Thanks to Axel Huebl. See PR #541 and #542. + +* Several fixes for mingw platform. Thanks to Biswapriyo Nath. See PR #540 and #543. + + Changes from 2.10.0 to 2.10.1 ============================= @@ -11,7 +33,7 @@ on install, so CMake users do not need to write `FindBlosc2.cmake` files anymore. This also helps to preserve transitive dependencies on CMake targets, especially useful for fully static builds, e.g., for - Python wheels. Thanks to @ax3l (Axel Huebel). See PR #537. + Python wheels. Thanks to @ax3l (Axel Huebl). See PR #537. * Fix new typos. Thanks to @DimitriPapadopoulos. See PR #538. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/blosc/CMakeLists.txt new/blosc2-2.2.7/blosc2/c-blosc2/blosc/CMakeLists.txt --- old/blosc2-2.2.6/blosc2/c-blosc2/blosc/CMakeLists.txt 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/blosc/CMakeLists.txt 2023-09-13 10:42:51.000000000 +0200 @@ -165,28 +165,22 @@ endif() endif() -set(CMAKE_THREAD_PREFER_PTHREAD TRUE) # pre 3.1 -set(THREADS_PREFER_PTHREAD_FLAG TRUE) # CMake 3.1+ -if(WIN32) - # try to use the system library - find_package(Threads) - if(NOT Threads_FOUND) - message(STATUS "using the internal pthread library for win32 systems.") - list(APPEND SOURCES blosc/win32/pthread.c) - else() - if(CMAKE_VERSION VERSION_LESS 3.1) - set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT}) - else() - set(LIBS ${LIBS} Threads::Threads) - endif() - endif() -else() - find_package(Threads REQUIRED) +# Threads +if(HAVE_THREADS) if(CMAKE_VERSION VERSION_LESS 3.1) set(LIBS ${LIBS} ${CMAKE_THREAD_LIBS_INIT}) else() set(LIBS ${LIBS} Threads::Threads) endif() +elseif(WIN32) + message(STATUS "using the internal pthread library for win32 systems.") + list(APPEND SOURCES blosc/win32/pthread.c) +else() + message(FATAL_ERROR "Threads required but not found.") +endif() + +# dlopen/dlclose +if(NOT WIN32) set(LIBS ${LIBS} ${CMAKE_DL_LIBS}) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/blosc/blosc-private.h new/blosc2-2.2.7/blosc2/c-blosc2/blosc/blosc-private.h --- old/blosc2-2.2.6/blosc2/c-blosc2/blosc/blosc-private.h 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/blosc/blosc-private.h 2023-09-13 10:42:51.000000000 +0200 @@ -184,7 +184,9 @@ #if defined(_WIN32) #include <windows.h> +#ifndef PATH_MAX #define PATH_MAX MAX_PATH +#endif #define RTLD_LAZY 0x000 #define popen _popen #define pclose _pclose @@ -199,6 +201,7 @@ }; static inline void *dlopen (const char *filename, int flags) { + BLOSC_UNUSED_PARAM(flags); HINSTANCE hInst; hInst = LoadLibrary(filename); if (hInst==NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/blosc/blosc2.c new/blosc2-2.2.7/blosc2/c-blosc2/blosc/blosc2.c --- old/blosc2-2.2.6/blosc2/c-blosc2/blosc/blosc2.c 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/blosc/blosc2.c 2023-09-13 10:42:51.000000000 +0200 @@ -823,16 +823,21 @@ char libpath[PATH_MAX]; void *lib = load_lib(codec->compname, libpath); if(lib == NULL) { - BLOSC_TRACE_ERROR("Error while loading the library"); + BLOSC_TRACE_ERROR("Error while loading the library for codec `%s`", codec->compname); return BLOSC2_ERROR_FAILURE; } codec_info *info = dlsym(lib, "info"); + if (info == NULL) { + BLOSC_TRACE_ERROR("`info` symbol cannot be loaded from plugin `%s`", codec->compname); + dlclose(lib); + return BLOSC2_ERROR_FAILURE; + } + codec->encoder = dlsym(lib, info->encoder); codec->decoder = dlsym(lib, info->decoder); - - if (codec->encoder == NULL || codec->decoder == NULL){ - BLOSC_TRACE_ERROR("Wrong library loaded"); + if (codec->encoder == NULL || codec->decoder == NULL) { + BLOSC_TRACE_ERROR("encoder or decoder cannot be loaded from plugin `%s`", codec->compname); dlclose(lib); return BLOSC2_ERROR_FAILURE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/blosc/frame.c new/blosc2-2.2.7/blosc2/c-blosc2/blosc/frame.c --- old/blosc2-2.2.6/blosc2/c-blosc2/blosc/frame.c 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/blosc/frame.c 2023-09-13 10:42:51.000000000 +0200 @@ -1635,11 +1635,12 @@ char* eframe_name = malloc(strlen(frame->urlpath) + strlen("/chunks.b2frame") + 1); sprintf(eframe_name, "%s/chunks.b2frame", frame->urlpath); fp = io_cb->open(eframe_name, "rb", frame->schunk->storage->io->params); - free(eframe_name); if (fp == NULL) { BLOSC_TRACE_ERROR("Error opening file in: %s", eframe_name); + free(eframe_name); return BLOSC2_ERROR_FILE_OPEN; } + free(eframe_name); io_cb->seek(fp, trailer_offset, SEEK_SET); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/blosc/stune.c new/blosc2-2.2.7/blosc2/c-blosc2/blosc/stune.c --- old/blosc2-2.2.6/blosc2/c-blosc2/blosc/stune.c 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/blosc/stune.c 2023-09-13 10:42:51.000000000 +0200 @@ -106,7 +106,8 @@ } /* Now the blocksize for splittable codecs */ - if (clevel > 0 && split_block(context, typesize, blocksize)) { + int splitmode = split_block(context, typesize, blocksize); + if (clevel > 0 && splitmode) { // For performance reasons, do not exceed 256 KB (it must fit in L2 cache) switch (clevel) { case 1: @@ -120,6 +121,8 @@ blocksize = 64 * 1024; break; case 7: + blocksize = 128 * 1024; + break; case 8: blocksize = 256 * 1024; break; @@ -152,6 +155,8 @@ } context->blocksize = blocksize; + BLOSC_INFO("compcode: %d, clevel: %d, blocksize: %d, splitmode: %d, typesize: %d", + context->compcode, context->clevel, blocksize, splitmode, typesize); } void blosc_stune_next_cparams(blosc2_context * context) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/cmake/FindZLIB_NG.cmake new/blosc2-2.2.7/blosc2/c-blosc2/cmake/FindZLIB_NG.cmake --- old/blosc2-2.2.6/blosc2/c-blosc2/cmake/FindZLIB_NG.cmake 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/cmake/FindZLIB_NG.cmake 2023-09-13 10:42:51.000000000 +0200 @@ -27,9 +27,21 @@ set(ZLIB_NG_FOUND FALSE) endif(ZLIB_NG_INCLUDE_DIR AND ZLIB_NG_LIBRARIES) +# generate CMake target if(ZLIB_NG_FOUND) message(STATUS "Found zlib-ng: ${ZLIB_NG_LIBRARIES}, ${ZLIB_NG_INCLUDE_DIR}") -endif(ZLIB_NG_FOUND) + + set(ZLIB_NG_INCLUDE_DIRS ${ZLIB_NG_INCLUDE_DIR}) + + if(NOT TARGET ZLIB_NG::ZLIB_NG) + add_library(ZLIB_NG::ZLIB_NG UNKNOWN IMPORTED) + set_target_properties(ZLIB_NG::ZLIB_NG PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${ZLIB_NG_INCLUDE_DIRS}") + + set_property(TARGET ZLIB_NG::ZLIB_NG APPEND PROPERTY + IMPORTED_LOCATION "${ZLIB_NG_LIBRARIES}") + endif() +endif() #[[ Copyright https://github.com/zlib-ng/minizip-ng, 2021 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/examples/CMakeLists.txt new/blosc2-2.2.7/blosc2/c-blosc2/examples/CMakeLists.txt --- old/blosc2-2.2.6/blosc2/c-blosc2/examples/CMakeLists.txt 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/examples/CMakeLists.txt 2023-09-13 10:42:51.000000000 +0200 @@ -1,7 +1,7 @@ # Examples with correspondingly named source files set(EXAMPLES contexts instrument_codec delta_schunk_ex multithread simple frame_metalayers noinit find_roots schunk_simple frame_simple schunk_postfilter urcodecs urfilters frame_vlmetalayers - sframe_simple frame_backed_schunk compress_file frame_offset frame_roundtrip get_set_slice) + sframe_simple frame_backed_schunk compress_file frame_offset frame_roundtrip get_set_slice get_blocksize) add_subdirectory(b2nd) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/examples/get_blocksize.c new/blosc2-2.2.7/blosc2/c-blosc2/examples/get_blocksize.c --- old/blosc2-2.2.6/blosc2/c-blosc2/examples/get_blocksize.c 1970-01-01 01:00:00.000000000 +0100 +++ new/blosc2-2.2.7/blosc2/c-blosc2/examples/get_blocksize.c 2023-09-13 10:42:51.000000000 +0200 @@ -0,0 +1,72 @@ +/* + Copyright (c) 2021 The Blosc Development Team <bl...@blosc.org> + https://blosc.org + License: BSD 3-Clause (see LICENSE.txt) + + Example program demonstrating the use of a Blosc from C code. + + To compile this program: + + $ gcc -O get_blocksize.c -o get_blocksize -lblosc2 + + To run: + + $ ./get_blocksize + Blosc version info: 2.10.3.dev ($Date:: 2023-08-19 #$) + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 16384 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 131072 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 65536 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 131072 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 262144 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 262144 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 524288 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 1048576 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 524288 + Compression: 10000000 -> 32 (312500.0x) + osize, csize, blocksize: 10000000, 32, 2097152 + + Process finished with exit code 0 + +*/ + +#include <stdio.h> +#include "blosc2.h" + + +int main(void) { + blosc2_init(); + + static uint8_t data_dest[BLOSC2_MAX_OVERHEAD]; + blosc2_cparams cparams = BLOSC2_CPARAMS_DEFAULTS; + cparams.typesize = sizeof(float); + cparams.compcode = BLOSC_ZSTD; + + printf("Blosc version info: %s (%s)\n", + BLOSC2_VERSION_STRING, BLOSC2_VERSION_DATE); + + /* Do the actual compression */ + for (int clevel=0; clevel < 10; clevel++) { + cparams.clevel = clevel; + cparams.splitmode = clevel % 2; + int isize = 10 * 1000 * 1000; + int osize, csize, blocksize; + csize = blosc2_chunk_zeros(cparams, isize, data_dest, BLOSC2_MAX_OVERHEAD); + printf("Compression: %d -> %d (%.1fx)\n", isize, csize, (1. * isize) / csize); + + BLOSC_ERROR(blosc2_cbuffer_sizes(data_dest, &osize, &csize, &blocksize)); + printf("osize, csize, blocksize: %d, %d, %d\n", osize, csize, blocksize); + } + + blosc2_destroy(); + + return 0; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/include/blosc2/blosc2-export.h new/blosc2-2.2.7/blosc2/c-blosc2/include/blosc2/blosc2-export.h --- old/blosc2-2.2.6/blosc2/c-blosc2/include/blosc2/blosc2-export.h 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/include/blosc2/blosc2-export.h 2023-09-13 10:42:51.000000000 +0200 @@ -33,11 +33,11 @@ #define BLOSC_EXPORT #endif /* defined(BLOSC_SHARED_LIBRARY) */ -#if defined(__GNUC__) || defined(__clang__) +#if (defined(__GNUC__) || defined(__clang__)) && !defined(__MINGW32__) #define BLOSC_NO_EXPORT __attribute__((visibility("hidden"))) #else #define BLOSC_NO_EXPORT -#endif /* defined(__GNUC__) || defined(__clang__) */ +#endif /* (defined(__GNUC__) || defined(__clang__)) && !defined(__MINGW32__) */ /* When testing, export everything to make it easier to implement tests. */ #if defined(BLOSC_TESTING) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/include/blosc2/codecs-registry.h new/blosc2-2.2.7/blosc2/c-blosc2/include/blosc2/codecs-registry.h --- old/blosc2-2.2.6/blosc2/c-blosc2/include/blosc2/codecs-registry.h 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/include/blosc2/codecs-registry.h 2023-09-13 10:42:51.000000000 +0200 @@ -22,6 +22,7 @@ BLOSC_CODEC_ZFP_FIXED_ACCURACY = 33, BLOSC_CODEC_ZFP_FIXED_PRECISION = 34, BLOSC_CODEC_ZFP_FIXED_RATE = 35, + BLOSC_CODEC_OPENHTJ2K = 36, }; void register_codecs(void); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/include/blosc2.h new/blosc2-2.2.7/blosc2/c-blosc2/include/blosc2.h --- old/blosc2-2.2.6/blosc2/c-blosc2/include/blosc2.h 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/include/blosc2.h 2023-09-13 10:42:51.000000000 +0200 @@ -83,10 +83,10 @@ /* Version numbers */ #define BLOSC2_VERSION_MAJOR 2 /* for major interface/format changes */ #define BLOSC2_VERSION_MINOR 10 /* for minor interface/format changes */ -#define BLOSC2_VERSION_RELEASE 1 /* for tweaks, bug-fixes, or development */ +#define BLOSC2_VERSION_RELEASE 3 /* for tweaks, bug-fixes, or development */ -#define BLOSC2_VERSION_STRING "2.10.1" /* string version. Sync with above! */ -#define BLOSC2_VERSION_DATE "$Date:: 2023-08-01 #$" /* date version */ +#define BLOSC2_VERSION_STRING "2.10.3" /* string version. Sync with above! */ +#define BLOSC2_VERSION_DATE "$Date:: 2023-09-13 #$" /* date version */ /* The maximum number of dimensions for Blosc2 NDim arrays */ @@ -121,6 +121,13 @@ } \ } while (0) +#define BLOSC_INFO(msg, ...) \ + do { \ + const char *__e = getenv("BLOSC_INFO"); \ + if (!__e) { break; } \ + fprintf(stderr, "[INFO] - " msg "\n", ##__VA_ARGS__); \ + } while(0) + /* The VERSION_FORMAT symbols below should be just 1-byte long */ enum { @@ -287,7 +294,7 @@ BLOSC2_GLOBAL_REGISTERED_CODECS_START = 32, BLOSC2_GLOBAL_REGISTERED_CODECS_STOP = 159, //!< Blosc-registered codecs must be between 31 - 159. - BLOSC2_GLOBAL_REGISTERED_CODECS = 1, + BLOSC2_GLOBAL_REGISTERED_CODECS = 5, //!< Number of Blosc-registered codecs at the moment. BLOSC2_USER_REGISTERED_CODECS_START = 160, BLOSC2_USER_REGISTERED_CODECS_STOP = 255, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/c-blosc2/plugins/codecs/codecs-registry.c new/blosc2-2.2.7/blosc2/c-blosc2/plugins/codecs/codecs-registry.c --- old/blosc2-2.2.6/blosc2/c-blosc2/plugins/codecs/codecs-registry.c 2023-08-01 14:34:50.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/c-blosc2/plugins/codecs/codecs-registry.c 2023-09-13 10:42:51.000000000 +0200 @@ -47,4 +47,13 @@ zfp_rate.decoder = &zfp_rate_decompress; zfp_rate.compname = "zfp_rate"; register_codec_private(&zfp_rate); + + blosc2_codec openhtj2k; + openhtj2k.compcode = BLOSC_CODEC_OPENHTJ2K; + openhtj2k.version = 1; + openhtj2k.complib = BLOSC_CODEC_OPENHTJ2K; + openhtj2k.encoder = NULL; + openhtj2k.decoder = NULL; + openhtj2k.compname = "openhtj2k"; + register_codec_private(&openhtj2k); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/core.py new/blosc2-2.2.7/blosc2/core.py --- old/blosc2-2.2.6/blosc2/core.py 2023-08-01 14:34:49.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/core.py 2023-09-13 10:42:50.000000000 +0200 @@ -88,7 +88,7 @@ ----- The `cname` and `shuffle` parameters in python-blosc API have been replaced by :paramref:`codec` and :paramref:`filter` respectively. - To set :paramref:`codec` and :paramref:`fitler`, the enumerates :class:`Codec` and :class:`Filter` + To set :paramref:`codec` and :paramref:`filter`, the enumerates :class:`Codec` and :class:`Filter` have to be used instead of the python-blosc API variables such as `blosc.SHUFFLE` for :paramref:`filter` or strings like "blosclz" for :paramref:`codec`. @@ -222,7 +222,7 @@ ----- The `cname` and `shuffle` parameters in python-blosc API have been replaced by :paramref:`codec` and :paramref:`filter` respectively. - To set :paramref:`codec` and :paramref:`fitler`, the enumerates :class:`Codec` and :class:`Filter` + To set :paramref:`codec` and :paramref:`filter`, the enumerates :class:`Codec` and :class:`Filter` have to be used instead of the python-blosc API variables such as `blosc.SHUFFLE` for :paramref:`filter` or strings like "blosclz" for :paramref:`codec`. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2/version.py new/blosc2-2.2.7/blosc2/version.py --- old/blosc2-2.2.6/blosc2/version.py 2023-08-01 14:36:58.000000000 +0200 +++ new/blosc2-2.2.7/blosc2/version.py 2023-09-13 10:45:13.000000000 +0200 @@ -1 +1 @@ -__version__ = "2.2.6" +__version__ = "2.2.7" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2.egg-info/PKG-INFO new/blosc2-2.2.7/blosc2.egg-info/PKG-INFO --- old/blosc2-2.2.6/blosc2.egg-info/PKG-INFO 2023-08-01 14:36:58.000000000 +0200 +++ new/blosc2-2.2.7/blosc2.egg-info/PKG-INFO 2023-09-13 10:45:13.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: blosc2 -Version: 2.2.6 +Version: 2.2.7 Summary: Python wrapper for the C-Blosc2 library Author-email: Blosc Development Team <bl...@blosc.org> Maintainer-email: Blosc Development Team <bl...@blosc.org> @@ -24,6 +24,10 @@ Requires-Python: <4,>=3.8 Description-Content-Type: text/x-rst License-File: LICENSE.txt +Requires-Dist: msgpack +Requires-Dist: ndindex>=1.4 +Requires-Dist: numpy>=1.20.3 +Requires-Dist: py-cpuinfo ============= Python-Blosc2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/blosc2-2.2.6/blosc2.egg-info/SOURCES.txt new/blosc2-2.2.7/blosc2.egg-info/SOURCES.txt --- old/blosc2-2.2.6/blosc2.egg-info/SOURCES.txt 2023-08-01 14:36:58.000000000 +0200 +++ new/blosc2-2.2.7/blosc2.egg-info/SOURCES.txt 2023-09-13 10:45:13.000000000 +0200 @@ -296,6 +296,7 @@ blosc2/c-blosc2/examples/frame_roundtrip.c blosc2/c-blosc2/examples/frame_simple.c blosc2/c-blosc2/examples/frame_vlmetalayers.c +blosc2/c-blosc2/examples/get_blocksize.c blosc2/c-blosc2/examples/get_set_slice.c blosc2/c-blosc2/examples/instrument_codec.c blosc2/c-blosc2/examples/many_compressors.c