Sync from SUSE:SLFO:Main blosc revision 6fa377dbfa2822ab62ea74efe4849523

This commit is contained in:
Adrian Schröter 2024-05-03 11:20:31 +02:00
commit 406a13d303
4 changed files with 587 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

454
blosc.changes Normal file
View File

@ -0,0 +1,454 @@
-------------------------------------------------------------------
Mon Sep 4 19:04:39 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 1.21.5:
* Fix SSE2/AVX2 build issue. Fixes #352.
-------------------------------------------------------------------
Fri Aug 4 19:02:49 UTC 2023 - Matthias Eliasson <elimat@opensuse.org>
- Update to 1.21.4
* Upgrade internal-complib zstd from 1.5.2 to 1.5.5.
* Zlib updated to 1.2.13.
- remove fix of moving pkgconfig file to correct location, it have been fixed upstrem
-------------------------------------------------------------------
Fri Oct 22 10:43:11 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
- Update to 1.21.1
* Fix pthread on ppc64le.
* Updates in internal codecs, important performance improvements
-------------------------------------------------------------------
Fri Apr 16 20:03:30 UTC 2021 - Ferdinand Thiessen <rpm@fthiessen.de>
- Update to 1.21.0:
* Updated internal codecs
-------------------------------------------------------------------
Fri Dec 18 08:06:48 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
- Update to version 1.20.1 boo#1179914 CVE-2020-29367:
* More saftey checks have been implemented so that potential flaws discovered by new fuzzers in OSS-Fuzzer are fixed now
* BloscLZ updated to 2.3.0. Expect better compression ratios for faster codecs. For details, see our new blog post: https://blosc.org/posts/beast-release/
* Fixed the _xgetbv() collision. Thanks to Michał Górny (@mgorny).
-------------------------------------------------------------------
Fri Aug 28 09:56:53 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- Stop assuming that %{_libexecdir} == /usr/lib (boo#1174075).
-------------------------------------------------------------------
Tue Aug 11 14:02:17 UTC 2020 - andy great <andythe_great@pm.me>
- Enable support for SNAPPY compression.
-------------------------------------------------------------------
Tue Jun 23 10:50:11 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
- Update to version 1.19.0:
* The length of automatic blocksizes for fast codecs (lz4, blosclz) has been incremented quite a bit (up to 256 KB) for better compression ratios.
* The performance in modern CPUs (with at least 256 KB in L2 cache) should be better too (for older CPUs the performance should stay roughly the same).
* For small buffers that cannot be compressed (typically < 128 bytes), blosc_compress() returns now a 0 (cannot compress) instead of a negative number (internal error). See #294.
* blosclz codec updated to 2.1.0. Expect better compression ratios and performance in a wider variety of scenarios.
* blosc_decompress_unsafe(), blosc_decompress_ctx_unsafe() and blosc_getitem_unsafe() have been removed because they are dangerous and after latest improvements, they should not be used in production.
-------------------------------------------------------------------
Tue Mar 31 09:39:10 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
- Update to version 1.18.1:
* Fixed the copy of the leftovers of a chunk when its size is not
a multiple of the typesize.
-------------------------------------------------------------------
Thu Feb 6 14:40:25 UTC 2020 - Martin Pluskal <mpluskal@suse.com>
- Update to version 1.17.1:
* BloscLZ codec updated to 2.0.0.
-------------------------------------------------------------------
Tue Nov 19 23:15:31 UTC 2019 - Simon Lees <sflees@suse.de>
- %make_jobs is depricated replaced by %cmake_build
-------------------------------------------------------------------
Tue Jun 4 10:38:33 UTC 2019 - Martin Pluskal <mpluskal@suse.com>
- Update to version 1.16.3:
* Fix for building for clang with -march=haswell. See PR #262.
* Fix all the known warnings for GCC/Clang. Still some work to do for MSVC in this front.
* Due to some problems with several CI systems, the check for library symbols are deactivated now by default. If you want to enforce this check, use: cmake .. -DDEACTIVATE_SYMBOLS_CHECK=ON to re-activate it.
* Correct the check for the compressed size when the buffer is memcpyed. This was a regression introduced in 1.16.0. Fixes #261.
* Fixed a regression in 1.16.0 that prevented to compress empty buffers (see #260).
* Now the functions that execute Blosc decompressions are safe by default for untrusted/possibly corrupted inputs.
* The previous functions (with less safety) checks are still available with a '_unsafe' suffix. The complete list is:
* Also, a new API function named blosc_cbuffer_validate(), for validating Blosc compressed data, has been added.
* For details, see PR #258. Thanks to Jeremy Maitin-Shepard.
* Fixed a bug in blosc_compress() that could lead to thread deadlock under some situations. See #251. Thanks to @wenjuno for the report and the fix.
* Fix data race in shuffle.c host_implementation initialization. Fixes #253. Thanks to Jeremy Maitin-Shepard.
* Add workaround for Visual Studio 2008's lack of a stdint.h file to blosclz.c.
* Replaced //-comments with /**/-comments and other improvements for compatibility with quite old gcc compilers. See PR #243. Thanks to Andreas Martin.
* Empty buffers can be compressed again (this was unadvertedly prevented while fixing #234). See #247. Thanks to Valentin Haenel.
-------------------------------------------------------------------
Tue Aug 21 12:53:41 UTC 2018 - mpluskal@suse.com
- Update to version 1.14.4:
* Added a new DEACTIVATE_SSE2 option for cmake that is useful for
disabling SSE2 when doing cross-compilation (see #236).
* New check for detecting output buffers smaller than
BLOSC_MAX_OVERHEAD.
* The complib and version parameters for blosc_get_complib_info()
can be safely set to NULL now. This allows to call this
function even if the user is not interested in these parameters
(so no need to reserve memory for them).
* In some situations that a supposedly blosc chunk is passed to
blosc_decompress(), one might end with an Arithmetic exception.
This is probably due to the chunk not being an actual blosc
chunk, and divisions by zero might occur. A protection has been
added for this.
-------------------------------------------------------------------
Fri Apr 13 08:55:13 UTC 2018 - mpluskal@suse.com
- Update to version 1.14.3:
* Fixed a bug that caused C-Blosc to crash on platforms
requiring strict alignment.
* Fixed a piece of code that was not C89 compliant.
-------------------------------------------------------------------
Tue Feb 6 11:50:55 UTC 2018 - mpluskal@suse.com
- Update to version 1.13.5:
* Fixed a buffer overrun that happens when compressing small
buffers and len(destination_buffer) < (len(source_buffer) +
BLOSC_MAX_OVERHEAD). Reported by Ivan Smirnov.
* Tests work now when external compressors are located in
non-system locations. Fixes #210. Thanks to Leif Walsh.
* Fixed a bug uncovered by the python-blosc test suite: when a
buffer is to be copied, then we should reserve space for the
header, not block pointers.
* Serious optimization of memory copy functions (see new
blosc/fastcopy.c). This benefits the speed of all the codecs,
but specially the BloscLZ one. As a result of the above, the
BloscLZ codec received a new adjustment of knobs so that you
should expect better compression ratios with it too.
-------------------------------------------------------------------
Thu Dec 28 23:10:53 UTC 2017 - jengelh@inai.de
- Fix RPM group. Compact descriptions.
-------------------------------------------------------------------
Sun Dec 24 18:33:04 UTC 2017 - mpluskal@suse.com
- Update to version 1.12.1:
* Backported BloscLZ parameters that were fine-tuned for
C-Blosc2.
- Packaging changes:
* Run spec-clener
* Use shared libraries with compression codecs instead of bundled
ones
* Use more of cmake macros
* Build in parallel
-------------------------------------------------------------------
Tue Apr 18 15:18:18 UTC 2017 - toddrme2178@gmail.com
- Update to 1.11.2
- Enabled use as a CMake subproject, exporting shared & static library targets
for super-projects to use. See PRs #178, #179 and #180. Thanks to Kevin
Murray.
- Internal LZ4 codec updated to 1.7.5.
- Internal Zstd codec updated to 1.1.2.
-------------------------------------------------------------------
Fri Sep 16 15:06:34 UTC 2016 - toddrme2178@gmail.com
- Update to 1.11.1
- Fixed a bug introduced in 1.11.0 and discovered by pandas test suite. This
basically prevented to decompress buffers compressed with previous versions of
C-Blosc. See: https://github.com/Blosc/python-blosc/issues/115
- Update to 1.11.0
- Internal Zstd codec upgraded to 1.0.0.
- New block size computation inherited from C-Blosc2. Benchmarks are saying that
this benefits mainly to LZ4, LZ4HC, Zlib and Zstd codecs, both in speed and in
compression ratios (although YMMV for your case).
- Added the @rpath flag in Mac OSX for shared libraries. Fixes #175.
- Added a fix for VS2008
- License changed from MIT to 3-clause BSD style.
- Update to 1.10.2
- Force the use of --std=gnu99 when using gcc. Fixes #174.
- Update to 1.10.1
- Removed an inconsistent check for C11 (__STDC_VERSION__ >= 201112L and
_ISOC11_SOURCE) as this seem to pose problems on compilers doing different
things in this check (e.g. clang). See
https://github.com/Blosc/bloscpack/issues/50.
- Update to 1.10.0
- Initial support for Zstandard (0.7.4). Zstandard (or Zstd for short) is a new
compression library that allows better compression than Zlib, but that works
typically faster (and some times much faster), making of it a good match for
Blosc.
- Update to 1.9.3
- Reverted a mistake introduced in 1.7.1. At that time, bit-shuffling
was enabled for typesize == 1 (i.e. strings), but the change also
included byte-shuffling accidentally. This only affected performance,
but in a quite bad way (a copy was needed). This has been fixed and
byte-shuffling is not active when typesize == 1 anymore.
-------------------------------------------------------------------
Thu Jul 7 18:13:50 UTC 2016 - toddrme2178@gmail.com
- Update to 1.9.2
* Check whether Blosc is actually initialized before blosc_init(),
blosc_destroy() and blosc_free_resources(). This makes the library
more resistant to different initialization cycles
(e.g. https://github.com/stevengj/Blosc.jl/issues/19).
- Update to 1.9.1
* The internal copies when clevel=0 are made now via memcpy(). At the
beginning of C-Blosc development, benchmarks where saying that the
internal, multi-threaded copies inside C-Blosc were faster than
memcpy(), but 6 years later, memcpy() made greats strides in terms
of efficiency. With this, you should expect an slight speed
advantage (10% ~ 20%) when C-Blosc is used as a replacement of
memcpy() (which should not be the most common scenario out there).
* Added a new DEACTIVATE_AVX2 cmake option to explicitly disable AVX2
at build-time. Thanks to James Bird.
* The ``make -jN`` for parallel compilation should work now. Thanks
to James Bird.
- Update to 1.9.0
* New blosc_get_nthreads() function to get the number of threads that
will be used internally during compression/decompression (set by
already existing blosc_set_nthreads()).
* New blosc_get_compressor() function to get the compressor that will
be used internally during compression (set by already existing
blosc_set_compressor()).
* New blosc_get_blocksize() function to get the internal blocksize to
be used during compression (set by already existing
blosc_set_blocksize()).
* Now, when the BLOSC_NOLOCK environment variable is set (to any
value), the calls to blosc_compress() and blosc_decompress() will
call blosc_compress_ctx() and blosc_decompress_ctx() under the hood
so as to avoid the internal locks. See blosc.h for details. This
allows multi-threaded apps calling the non _ctx() functions to avoid
the internal locks in C-Blosc. For the not multi-threaded app
though, it is in general slower to call the _ctx() functions so the
use of BLOSC_NOLOCK is discouraged.
* In the same vein, from now on, when the BLOSC_NTHREADS environment
variable is set to an integer, every call to blosc_compress() and
blosc_decompress() will call blosc_set_nthreads(BLOSC_NTHREADS)
before the actuall compression/decompression process. See blosc.h
for details.
* Finally, if BLOSC_CLEVEL, BLOSC_SHUFFLE, BLOSC_TYPESIZE and/or
BLOSC_COMPRESSOR variables are set in the environment, these will be
also honored before calling blosc_compress().
* Calling blosc_init() before any other Blosc call, although
recommended, is not necessary anymore. The idea is that you can use
just the basic blosc_compress() and blosc_decompress() and control
other parameters (nthreads, compressor, blocksize) by using
environment variables (see above).
- Update to 1.8.1
* Disable the use of __builtin_cpu_supports() for GCC 5.3.1
compatibility.
- Update to 1.8.0
* The code is (again) compatible with VS2008 and VS2010. This is
important for compatibility with Python 2.6/2.7/3.3/3.4.
* Introduced a new global lock during blosc_decompress() operation.
As the blosc_compress() was already guarded by a global lock, this
means that the compression/decompression is again thread safe.
However, when using C-Blosc from multi-threaded environments, it is
important to keep using the *_ctx() functions for performance
reasons. NOTE: _ctx() functions will be replaced by more powerful
ones in C-Blosc 2.0.
-------------------------------------------------------------------
Wed Mar 9 21:35:59 UTC 2016 - toddrme2178@gmail.com
- Update to 1.7.1
* Fixed a bug preventing bitshuffle to work correctly on getitem().
Now, everything with bitshuffle seems to work correctly.
* Fixed the thread initialization for blosc_decompress_ctx(). Issue
#158. Thanks to Chris Webers.
* Fixed a bug in the blocksize computation introduced in 1.7.0. This
could have been creating segfaults.
* Allow bitshuffle to run on 1-byte typesizes.
* New parametrization of the blocksize to be independent of the
typesize. This allows a smoother speed throughout all typesizes.
* lz4 and lz4hc codecs upgraded to 1.7.2 (from 1.7.0).
* When calling set_nthreads() but not actually changing the number of
threads in the internal pool does not teardown and setup it anymore.
PR #153. Thanks to Santi Villalba.
- Update to 1.7.0
* Added a new 'bitshuffle' filter so that the shuffle takes place at a
bit level and not just at a byte one, which is what it does the
previous 'shuffle' filter.
* New acceleration mode for LZ4 and BloscLZ codecs that enters in
operation with complevel < 9. This allows for an important boost in
speed with minimal compression ratio loss. Francesc Alted.
* LZ4 codec updated to 1.7.0 (r130).
* PREFER_EXTERNAL_COMPLIBS cmake option has been removed and replaced
by the more fine grained PREFER_EXTERNAL_LZ4, PREFER_EXTERNAL_SNAPPY
and PREFER_EXTERNAL_ZLIB. In order to allow the use of the new API
introduced in LZ4 1.7.0, PREFER_EXTERNAL_LZ4 has been set to OFF by
default, whereas PREFER_EXTERNAL_SNAPPY and PREFER_EXTERNAL_ZLIB
continues to be ON.
* Implemented SSE2 shuffle support for buffers containing a number of
elements which is not a multiple of (typesize * vectorsize). Jack
Pappas.
* Added SSE2 shuffle/unshuffle routines for types larger than 16
bytes. Jack Pappas.
* 'test_basic' suite has been split in components for a much better
granularity on what's a possibly failing test. Also, lots of new
tests have been added. Jack Pappas.
* Fixed compilation on non-Intel archs (tested on ARM). Zbyszek
Szmek.
* Modifyied cmake files in order to inform that AVX2 on Visual Studio
is supported only in 2013 update 2 and higher.
* Added a replacement for stdbool.h for Visual Studio < 2013.
* blosclz codec adds Win64/Intel as a platform supporting unaligned
addressing. That leads to a speed-up of 2.2x in decompression.
* New blosc_get_version_string() function for retrieving the version
of the c-blosc library. Useful when linking with dynamic libraries
and one want to know its version.
* New example (win-dynamic-linking.c) that shows how to link a Blosc
DLL dynamically in run-time (Windows only).
* The `context.threads_started` is initialized now when decompressing.
This could cause crashes in case you decompressed before compressing
(e.g. directly deserializing blosc buffers). @atchouprakov.
* The HDF5 filter has been removed from c-blosc and moved into its own
repo at: https://github.com/Blosc/hdf5
* The MS Visual Studio 2008 has been tested with c-blosc for ensuring
compatibility with extensions for Python 2.6 and up.
- Remove update-included 0001-Fix-cmake-system-check.patch and
0002-Fix-compilation-on-unknown-archs.patch
-------------------------------------------------------------------
Mon Feb 15 14:45:03 UTC 2016 - mkravec@suse.com
- Replaced long syntax with macros %cmake, %cmake_install, %ctest
-------------------------------------------------------------------
Fri Aug 7 14:51:19 UTC 2015 - normand@linux.vnet.ibm.com
- Add two patches dragged from fedora to support non-intel archi
0001-Fix-cmake-system-check.patch
0002-Fix-compilation-on-unknown-archs.patch
-------------------------------------------------------------------
Tue May 19 10:23:41 UTC 2015 - toddrme2178@gmail.com
- Update to version 1.6.1:
* Fixed a subtle, but long-standing bug in the blosclz codec that
could potentially overwrite an area beyond the output buffer.
* Support for runtime detection of AVX2 and SSE2 SIMD
instructions, allowing running AVX2 capable c-blosc libraries
to run on machines with no AVX2 available (will use SSE2
instead).
* A new blocksize computation allows for better compression
ratios for larger typesizes (> 8 bytes), without not penalizing
the speed too much (at least on modern CPUs).
- changes from version 1.6.0:
* Support for AVX2 is here! The benchmarks with a 4-core Intel
Haswell machine tell that both compression and decompression are
accelerated around a 10%, reaching peaks of 9.6 GB/s during
compression and 26 GB/s during decompression (memcpy() speed for
this machine is 7.5 GB/s for writes and 11.7 GB/s for reads).
Many thanks to @littlezhou for this nice work.
* Support for HPET (high precision timers) for the `bench` program.
This is particularly important for microbenchmarks like bench is
doing; since they take so little time to run, the granularity of a
less-accurate timer may account for a significant portion of the
runtime of the benchmark itself, skewing the results. Thanks to
Jack Pappas.
- changes from version 1.5.4:
* Updated to LZ4 1.6.0 (r128).
* Fix resource leak in t_blosc. Jack Pappas.
* Better checks during testing. Jack Pappas.
* Dynamically loadable HDF5 filter plugin. Kiyo Masui.
- changes from version 1.5.3:
* Use llabs function (where available) instead of abs to avoid
truncating the result. Jack Pappas.
* Use C11 aligned_alloc when it's available. Jack Pappas.
* Use the built-in stdint.h with MSVC when available. Jack Pappas.
* Only define the __SSE2__ symbol when compiling with MS Visual C++
and targeting x64 or x86 with the correct /arch flag set. This
avoids re-defining the symbol which makes other compilers issue
warnings. Jack Pappas.
* Reinitializing Blosc during a call to set_nthreads() so as to fix
problems with contexts. Francesc Alted.
- changes from version 1.5.2:
* Using blosc_compress_ctx() / blosc_decompress_ctx() inside the
HDF5 compressor for allowing operation in multiprocess scenarios.
See: https://github.com/PyTables/PyTables/issues/412
The drawback of this quick fix is that the Blosc filter will be only
able to use a single thread until another solution can be devised.
- changes from version 1.5.1:
* Updated to LZ4 1.5.0. Closes #74.
* Added the 'const' qualifier to non SSE2 shuffle functions. Closes
#75.
* Explicitly call blosc_init() in HDF5 blosc_filter.c, fixing a
segfault.
* Quite a few improvements in cmake files for HDF5 support. Thanks
to Dana Robinson (The HDF Group).
* Variable 'class' caused problems compiling the HDF5 filter with
g++. Thanks to Laurent Chapon.
* Small improvements on docstrings of c-blosc main functions.
- changes from version 1.5.0:
* Added new calls for allowing Blosc to be used *simultaneously*
(i.e. lock free) from multi-threaded environments. The new
functions are:
- blosc_compress_ctx(...)
- blosc_decompress_ctx(...)
See the new docstrings in blosc.h for how to use them. The previous
API should be completely unaffected. Thanks to Christopher Speller.
* Optimized copies during BloscLZ decompression. This can make
BloscLZ to decompress up to 1.5x faster in some situations.
* LZ4 and LZ4HC compressors updated to version 1.3.1.
* Added an examples directory on how to link apps with Blosc.
* stdlib.h moved from blosc.c to blosc.h as suggested by Rob Lathm.
* Fix a warning for {snappy,lz4}-free compilation. Thanks to Andrew
Schaaf.
* Several improvements for CMakeLists.txt (cmake).
* Fixing C99 compatibility warnings. Thanks to Christopher Speller.
- specfile:
* update copyright year
-------------------------------------------------------------------
Tue Jul 22 21:36:40 UTC 2014 - toddrme2178@gmail.com
- Cleanup .so files
-------------------------------------------------------------------
Tue Jul 22 15:09:27 UTC 2014 - toddrme2178@gmail.com
- Use source url so source validation can run.
- Change group
- Cleanup post and postun
-------------------------------------------------------------------
Thu Jul 17 09:51:46 UTC 2014 - toddrme2178@gmail.com
- Update to 1.4.1
* Fixed a bug in blosc_getitem() introduced in 1.4.0. Added a test for
blosc_getitem() as well.
- Update to 1.4.0
* Support for non-Intel and non-SSE2 architectures has been added. In
particular, the Raspberry Pi platform (ARM) has been tested and all
tests pass here.
* Architectures requiring strict access alignment are supported as well.
Due to this, arquitectures with a high penalty in accessing unaligned
data (e.g. Raspberry Pi, ARMv6) can compress up to 2.5x faster.
* LZ4 has been updated to r119 (1.2.0) so as to fix a possible security
breach.
- Update to 1.3.6
* Updated to LZ4 r118 due to a (highly unlikely) security hole. For
details see:
-------------------------------------------------------------------
Thu May 8 13:01:03 UTC 2014 - toddrme2178@gmail.com
- Initial version

107
blosc.spec Normal file
View File

@ -0,0 +1,107 @@
#
# spec file for package blosc
#
# 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/
#
%define major 1
%define libname lib%{name}%{major}
Name: blosc
Version: 1.21.5
Release: 0
Summary: A blocking, shuffling and lossless compression library
License: BSD-2-Clause AND BSD-3-Clause AND MIT
Group: Productivity/Archiving/Compression
URL: https://www.blosc.org/
Source: https://github.com/Blosc/c-blosc/archive/v%{version}.tar.gz#/c-blosc-%{version}.tar.gz
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: pkgconfig
BuildRequires: snappy-devel
BuildRequires: pkgconfig(liblz4)
BuildRequires: pkgconfig(libzstd)
BuildRequires: pkgconfig(zlib)
%description
Blosc is a compressor for binary data, designed to transmit data to
the processor cache faster than the traditional, non-compressed,
direct memory fetch approach via a memcpy() call. Blosc is not only a
compressor for data size reduction, but also for accelerating
memory-bound computations.
It uses the blocking technique to reduce activity on the memory bus,
which works by dividing datasets in blocks that are small enough to
fit in caches of processors and perform (de)compression there. SIMD
and multi-threading capabilities are leveraged if available.
Blosc is a metacompressor; it can use different compression
algorithms, such as BloscLZ, LZ4, LZ4HC, Snappy and Zlib.
%package -n %{libname}
Summary: A blocking, shuffling and lossless compression library
Group: System/Libraries
%description -n %{libname}
Blosc is a metacompressor (using actual algorithms like BloscLZ, LZ4,
LZ4HC, Snappy or Zlib) for binary data, with a focus on reducing
memory bus activity.
%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
%setup -q -n c-blosc-%{version}
%build
%cmake \
-DDEACTIVATE_SNAPPY:BOOL=OFF \
-DPREFER_EXTERNAL_SNAPPY:BOOL=ON \
-DPREFER_EXTERNAL_ZLIB:BOOL=ON \
-DPREFER_EXTERNAL_ZSTD:BOOL=ON \
-DPREFER_EXTERNAL_LZ4:BOOL=ON \
-DBUILD_STATIC:BOOL=OFF
%cmake_build
%install
%cmake_install
rm -rf %{buildroot}%{_libdir}/libblosc.a
%check
export LD_PRELOAD="$LD_PRELOAD %{buildroot}%{_libdir}/libblosc.so %{buildroot}%{_libdir}/libblosc.so.%{major} `pwd`/build/blosc/libblosc_testing.so"
%ctest
%post -n %{libname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%files -n %{libname}
%doc LICENSES/*.txt
%doc ANNOUNCE.rst README.md RELEASE_NOTES.rst THANKS.rst
%{_libdir}/libblosc.so.%{major}
%{_libdir}/libblosc.so.%{version}
%files devel
%doc examples/
%{_includedir}/blosc.h
%{_includedir}/blosc-export.h
%{_libdir}/libblosc.so
%{_libdir}/pkgconfig/blosc.pc
%changelog

BIN
c-blosc-1.21.5.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.