From 933a4c6aea66764e0575c93a488443f98d362bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Fri, 5 Jan 2024 09:32:31 +0100 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 blosc revision 6fa377dbfa2822ab62ea74efe4849523 --- .gitattributes | 23 +++ blosc.changes | 454 ++++++++++++++++++++++++++++++++++++++++++ blosc.spec | 107 ++++++++++ c-blosc-1.21.5.tar.gz | 3 + 4 files changed, 587 insertions(+) create mode 100644 .gitattributes create mode 100644 blosc.changes create mode 100644 blosc.spec create mode 100644 c-blosc-1.21.5.tar.gz diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /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/blosc.changes b/blosc.changes new file mode 100644 index 0000000..9414ccc --- /dev/null +++ b/blosc.changes @@ -0,0 +1,454 @@ +------------------------------------------------------------------- +Mon Sep 4 19:04:39 UTC 2023 - Dirk Müller + +- update to 1.21.5: + * Fix SSE2/AVX2 build issue. Fixes #352. + +------------------------------------------------------------------- +Fri Aug 4 19:02:49 UTC 2023 - Matthias Eliasson + +- 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 + +- 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 + +- Update to 1.21.0: + * Updated internal codecs + +------------------------------------------------------------------- +Fri Dec 18 08:06:48 UTC 2020 - Martin Pluskal + +- 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 + +- Stop assuming that %{_libexecdir} == /usr/lib (boo#1174075). + +------------------------------------------------------------------- +Tue Aug 11 14:02:17 UTC 2020 - andy great + +- Enable support for SNAPPY compression. + +------------------------------------------------------------------- +Tue Jun 23 10:50:11 UTC 2020 - Martin Pluskal + +- 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 + +- 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 + +- Update to version 1.17.1: + * BloscLZ codec updated to 2.0.0. + +------------------------------------------------------------------- +Tue Nov 19 23:15:31 UTC 2019 - Simon Lees + +- %make_jobs is depricated replaced by %cmake_build + +------------------------------------------------------------------- +Tue Jun 4 10:38:33 UTC 2019 - Martin Pluskal + +- 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 + diff --git a/blosc.spec b/blosc.spec new file mode 100644 index 0000000..a131616 --- /dev/null +++ b/blosc.spec @@ -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 diff --git a/c-blosc-1.21.5.tar.gz b/c-blosc-1.21.5.tar.gz new file mode 100644 index 0000000..7a8fbf1 --- /dev/null +++ b/c-blosc-1.21.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32e61961bbf81ffea6ff30e9d70fca36c86178afd3e3cfa13376adec8c687509 +size 2458960