commit a9b58c63ff88b0d2755143a989fd1ae6596789e29053acccb99f5db8f83d659f Author: Adrian Schröter Date: Fri May 3 11:20:49 2024 +0200 Sync from SUSE:SLFO:Main blosc2 revision 362319735fe8718a02710e29a5320702 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..504bbe3 --- /dev/null +++ b/_constraints @@ -0,0 +1,10 @@ + + + + 9 + + + 9 + + + diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..603e3b6 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +libblosc2-2 \ No newline at end of file diff --git a/blosc2.changes b/blosc2.changes new file mode 100644 index 0000000..582e235 --- /dev/null +++ b/blosc2.changes @@ -0,0 +1,208 @@ +------------------------------------------------------------------- +Fri Dec 1 13:37:53 UTC 2023 - Ben Greiner + +- Update to 2.11.3 + * Frames accept now typesizes that are larger than 255 (and up to + 2**31). See PyTables/PyTables#1086. Thanks to @chris-allan for + the report. + * AVX512 runtime dispatching has been fixed (basically disabled) + for GCC versions <= 10. + * Use typedef for blosc_timestamp_t. Thanks to Magnus Ulimoen. + +------------------------------------------------------------------- +Thu Nov 30 05:21:32 UTC 2023 - Steve Kowalik + +- Update to 2.11.2: + * Added support for ARMv7l platforms (Raspberry Pi). The NEON version + of the bitshuffle filter was not compiling there, and besides it + offered no performance advantage over the generic bitshuffle version + (it is 2x to 3x slower actually). So bitshuffle-neon.c has been + disabled by default in all ARM platforms. + * Also, unaligned access has been disabled in all ARM non-64bits platforms. + It turned out that, at least the armv7l CPU in Raspberry Pi 4, had + issues because __ARM_FEATURE_UNALIGNED C macro was asserted in the + compiler (both gcc and clang), but it actually made binaries to raise + a "Bus error". + * Thanks to Ben Nuttall for providing a Raspberry Pi for tracking down + these issues. +- Release 2.11.1 + * Fix ALTIVEC header. Only affects to IBM POWER builds. Thanks to + Michael Kuhn for providing a patch. +- Release 2.11.0 + * New AVX512 support for the bitshuffle filter. This is a backport of + the upstream bitshuffle project. Expect up to 20% better compression + speed on AMD Zen4 architecture (7950X3D CPU). + * Add c-blosc2 package definition for Guix. Thanks to Ivan Vilata. + * Properly check calls to strtol. Fixes #558. + * Export the b2nd_copy_buffer function. This may be useful for other + projects dealing with multidimensional arrays in memory. Thanks to + Ivan Vilata. + * Better check that nthreads must be >= 1 and <= INT16_MAX. Fixes #559. + * Fix compile arguments for armv7l. Thanks to Ben Greiner. +- Drop patch c-blosc2-pr563-armv7l-option.patch, included upstream. + +------------------------------------------------------------------- +Sat Oct 14 10:58:39 UTC 2023 - Ben Greiner + +- Update to 2.10.5 + * Fix a variable name in a test that was causing a segfault in + some platforms. + * Change tuner's functions signature to return always an error + code. This allows for better error checking when using plugable + tuners in Blosc2. + * Do checks when creating contexts. +- Release 2.10.4 + * Remove duplicated tune initialization since it is already done + in blosc2_create_cctx. Thanks to Marta Iborra + * Typos fixed. Thanks to Dimitri Papadopoulos. +- Release 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. +- Add c-blosc2-pr563-armv7l-option.patch gh#Blosc/c-blosc2#563 + (But there is sitll a "Bus error" in the CTests) + +------------------------------------------------------------------- +Tue Aug 22 18:51:49 UTC 2023 - Ben Greiner + +- Update to 2.10.2 + * Several fixes for the CMake system. Thanks to Axel Huebl. See + PR #541 and #542. +- Changes from 2.10.0 to 2.10.1 + * blosc2_remove_urlpath(const char *urlpath) does not return an + error when path does not exist. + * Changes in CMake installer to conserve targets and properties + 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 Huebl). See PR #537. + * Fix new typos. Thanks to @DimitriPapadopoulos. See PR #538. +- Changes from 2.9.3 to 2.10.0 + * bytedelta filter has been fixed. For backward compatibility, + the old bytedelta filter is still available as + BLOSC_FILTER_BYTEDELTA_BUGGY symbol, with the same ID (34) than + before. The new, fixed bytedelta filter has received a new ID + (35) and it can be used via the usual BLOSC_FILTER_BYTEDELTA + symbol. That means that old data written with the buggy + bytedelta filter should be decompressed without issues. Thanks + to @foody (Tom Birch) for the fix. See #531, #532 for more + info. + * Filter buffers are correctly cycled now. Now it is possible to + use e.g. shuffle and bitshuffle filters in the pipeline. Thanks + to @foody (Tom Birch) for the fix. See #528 and PR #530. + * Assorted fixes for allowing better inclusion in external + projects. Thanks to @ax3l (Axel Huebel). See #525, #527 and + #529. +- Changes from 2.9.2 to 2.9.3 + * Thanks to Dimitri Papadopoulos for an extensive set of + improvements in documentation and code. + * load_lib is now a private function. Before was public, but + never meant to be. + * Several fixes for bugs discovered by the fuzzer. +- Changes from 2.9.1 to 2.9.2 + * Now is possible to register the same plugin (as long as they + have the same ID and name) without errors. This is useful for + registering the same plugin without worrying on whether it has + been registered already. + * Improved detection of dynamic plugin locations. Now they must + implement plugin_module.print_libpath() as the canonical way to + find the path for the dynamic library plugin. + * The blosc2_static has gained the cmake + POSITION_INDEPENDENT_CODE property. This should allow to use + the static library in more situations. + * BLOSC_STUNE is defined in blosc2.h now. Fixes #481. Thanks to + @DimitriPapadopoulos. + * Fixed an issue when having incompressible data in combination + with lazy_chunks. + * Fix linking with static -DBUILD_STATIC=0. Fixes #480. + * Many small fixes and code improvements. Thanks to + @DimitriPapadopoulos, @bnavigator. +- Drop c-blosc2-pr483-BLOSC_STUNE.patch upstream merged + +------------------------------------------------------------------- +Tue May 16 18:54:01 UTC 2023 - Ben Greiner + +- Add c-blosc2-pr483-BLOSC_STUNE.patch gh#Bosc/c-blosc2#483 + * Fixes build failure of PyTables + +------------------------------------------------------------------- +Thu May 11 14:20:14 UTC 2023 - Ben Greiner + +- Update to 2.9.1 + * Allow the use of BTUNE by detecting the ``BTUNE_BALANCE`` + environment variable. +- Release 2.9.0 + * Dynamic plugins as Python wheels are supported now! This new + feature allows for creating plugins in C, distribute them as + wheels, and load them dynamically in runtime. Small example at + https://github.com/Blosc/blosc2_plugin_example + * BloscLZ can achieve more speed in clevel 1 now. + * Internal Zstd sources updated to latest 1.5.5 version. + * Copyright notice updated. Thanks to @DimitriPapadopoulos. +- Skip failing test_contexts gh#Blosc/c-blosc2#464 + +------------------------------------------------------------------- +Fri Mar 31 09:26:42 UTC 2023 - Ben Greiner + +- Add _constraints + +------------------------------------------------------------------- +Thu Mar 30 14:54:17 UTC 2023 - Andrea Manzini + +- Update to 2.8.0 + * New bytedelta filter added. SIMD support for Intel and ARM platforms is there. + We have blogged about this: https://www.blosc.org/posts/bytedelta-enhance-compression-toolset + Thanks to Aras Pranckevičius for inspiration and initial implementation. + * Minor improvements in BloscLZ, leading to better compression ratios in general. + * BLoscLZ version bumped to 2.5.2. + * Updated internal zlib-ng to 2.0.7. + +------------------------------------------------------------------- +Sat Feb 25 19:07:56 UTC 2023 - Ben Greiner + +- Build AVX2 enabled hwcaps library for x86_64-v3 + +------------------------------------------------------------------- +Sat Feb 25 18:14:48 UTC 2023 - Ben Greiner + +- Fix AVX2 deactivation + +------------------------------------------------------------------- +Fri Feb 24 04:04:58 UTC 2023 - Ben Greiner + +- Update to 2.7.1 + * Caterva has been merged and carefully integrated in C-Blosc2 in + the new b2nd interface. For more info on the new interface, see + https://www.blosc.org/c-blosc2/reference/b2nd.html. Thanks to + Marta Iborra, Oscar Guiñón, J. David Ibáñez and Francesc Alted. + Also thanks to Aleix Alcacer for his great work in the Caterva + project. We have a blog about this: + https://www.blosc.org/posts/blosc2-ndim-intro + * Updated internal zstd sources to 1.5.4. Thanks to Dimitri + Papadopoulos. + * blosc2_schunk_avoid_cframe_free and blosc2_schunk_append_file + are exported as public functions now. Thanks to @bnavigator. + * BloscLZ codec is now treated exactly the same as LZ4. Before + BloscLZ was considered less capable of reaching decent + compression ratios, but this has changed quite a bit lately, so + there is no point in treating both differently. + * Fixed some leaks, mainly on the test suite. + * Fixed quite a bit of compiler warnings. + - Drop blosc2-export-schunk.patch + +------------------------------------------------------------------- +Fri Feb 24 00:50:12 UTC 2023 - Ben Greiner + +- Set ExclusiveArch to x86_64, %ix86 and aarch64: other platforms + fail + +------------------------------------------------------------------- +Fri Feb 17 13:00:38 UTC 2023 - Ben Greiner + +- Initial specfile for v2.6.1 based on specfile for blosc 1 +- Required by python-blosc2, required by python-tables +- Add blosc2-export-schunk.patch + * gh#Blosc/python-blosc2#83, gh#Blosc/c-blosc2#448 diff --git a/blosc2.spec b/blosc2.spec new file mode 100644 index 0000000..70aa95e --- /dev/null +++ b/blosc2.spec @@ -0,0 +1,121 @@ +# +# spec file for package blosc2 +# +# Copyright (c) 2023 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +# Adjust baselibs.conf if this changes +%define major 2 +%define libname lib%{name}-%{major} +Name: blosc2 +Version: 2.11.3 +Release: 0 +Summary: A fast, compressed, persistent binary data store library for C +License: BSD-2-Clause AND BSD-3-Clause AND MIT +URL: https://www.blosc.org/c-blosc2/c-blosc2.html +Source: https://github.com/Blosc/c-blosc2/archive/refs/tags/v%{version}.tar.gz#/c-blosc2-%{version}.tar.gz +Source99: baselibs.conf +BuildRequires: cmake +BuildRequires: gcc-c++ +BuildRequires: pkgconfig +BuildRequires: pkgconfig(liblz4) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(zlib) +%{?suse_build_hwcaps_libs} + +%description +Blosc is a high performance compressor optimized for binary data +(i.e. floating point numbers, integers and booleans). It has been +designed to transmit data to the processor cache faster than the +traditional, non-compressed, direct memory fetch approach via a +memcpy() OS call. Blosc main goal is not just to reduce the size +of large datasets on-disk or in-memory, but also to accelerate +memory-bound computations. + +C-Blosc2 is the new major version of C-Blosc, and tries hard to +be backward compatible with both the C-Blosc1 API and its in-memory +format. However, the reverse thing is generally not true for the +format; buffers generated with C-Blosc2 are not format-compatible +with C-Blosc1 (i.e. forward compatibility is not supported). In +case you want to ensure full API compatibility with C-Blosc1 API, +define the BLOSC1_COMPAT symbol. + +%package -n %{libname} +Summary: A fast, compressed, persistent binary data store library for C +Group: System/Libraries + +%description -n %{libname} +Blosc is a high performance compressor optimized for binary data +(i.e. floating point numbers, integers and booleans). + +%package devel +Summary: Development libraries for %{libname} +Group: Development/Libraries/C and C++ +Requires: %{libname} = %{version} + +%description devel +This package provides development libraries and headers +for %{libname}. + +%prep +%autosetup -p1 -n c-blosc2-%{version} + +%build +%cmake \ +%ifnarch x86_64_v3 + -DDEACTIVATE_AVX2:BOOL=ON \ +%endif + -DPREFER_EXTERNAL_ZLIB:BOOL=ON \ + -DPREFER_EXTERNAL_ZSTD:BOOL=ON \ + -DPREFER_EXTERNAL_LZ4:BOOL=ON \ + -DBUILD_STATIC:BOOL=OFF \ + -DBUILD_EXAMPLES:BOOL=OFF \ + -DBUILD_FUZZERS:BOOL=OFF \ + -DBUILD_BENCHMARKS:BOOL=OFF +%cmake_build + +%install +%cmake_install + +%check +export LD_PRELOAD="$LD_PRELOAD %{buildroot}%{_libdir}/libblosc2.so %{buildroot}%{_libdir}/libblosc2.so.%{major}" +# https://github.com/Blosc/c-blosc2/issues/432 +single_thread_tests='test_sframe|test_schunk_frame|test_fill_special' +# https://github.com/Blosc/c-blosc2/issues/464 +failing_tests='test_contexts' +%ctest --exclude-regex "${single_thread_tests}|${failing_tests}" +pushd build +ctest --tests-regex "${single_thread_tests}" +popd + +%post -n %{libname} -p /sbin/ldconfig +%postun -n %{libname} -p /sbin/ldconfig + +%files -n %{libname} +%license LICENSE.txt LICENSES/*.txt +%doc ANNOUNCE.md README*.rst RELEASE_NOTES.md THANKS.rst +%{_libdir}/libblosc2.so.%{major} +%{_libdir}/libblosc2.so.%{version} + +%files devel +%doc examples/ +%{_includedir}/blosc2 +%{_includedir}/blosc2.h +%{_includedir}/b2nd.h +%{_libdir}/libblosc2.so +%{_libdir}/pkgconfig/blosc2.pc +%{_libdir}/cmake/Blosc2 + +%changelog diff --git a/c-blosc2-2.11.3.tar.gz b/c-blosc2-2.11.3.tar.gz new file mode 100644 index 0000000..bf1a6c2 --- /dev/null +++ b/c-blosc2-2.11.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7273ec3ab42adc247425ab34b0601db86a6e2a6aa1a97a11e29df02e078f5037 +size 3145288