Sync from SUSE:SLFO:Main blosc2 revision 362319735fe8718a02710e29a5320702

This commit is contained in:
Adrian Schröter 2024-05-03 11:20:49 +02:00
commit a9b58c63ff
6 changed files with 366 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

10
_constraints Normal file
View File

@ -0,0 +1,10 @@
<constraints>
<hardware>
<memory>
<size unit="G">9</size>
</memory>
<disk>
<size unit="G">9</size>
</disk>
</hardware>
</constraints>

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libblosc2-2

208
blosc2.changes Normal file
View File

@ -0,0 +1,208 @@
-------------------------------------------------------------------
Fri Dec 1 13:37:53 UTC 2023 - Ben Greiner <code@bnavigator.de>
- 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 <steven.kowalik@suse.com>
- 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 <code@bnavigator.de>
- 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 <code@bnavigator.de>
- 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 <code@bnavigator.de>
- 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 <code@bnavigator.de>
- 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 <code@bnavigator.de>
- Add _constraints
-------------------------------------------------------------------
Thu Mar 30 14:54:17 UTC 2023 - Andrea Manzini <andrea.manzini@suse.com>
- 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 <code@bnavigator.de>
- Build AVX2 enabled hwcaps library for x86_64-v3
-------------------------------------------------------------------
Sat Feb 25 18:14:48 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Fix AVX2 deactivation
-------------------------------------------------------------------
Fri Feb 24 04:04:58 UTC 2023 - Ben Greiner <code@bnavigator.de>
- 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 <code@bnavigator.de>
- Set ExclusiveArch to x86_64, %ix86 and aarch64: other platforms
fail
-------------------------------------------------------------------
Fri Feb 17 13:00:38 UTC 2023 - Ben Greiner <code@bnavigator.de>
- 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

121
blosc2.spec Normal file
View File

@ -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

BIN
c-blosc2-2.11.3.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.