94350ef
Summary: High performance compressor optimized for binary data
26e3712
Name: blosc
6df6fcb
Version: 1.21.2
035bc62
Release: %autorelease
26e3712
License: MIT
94350ef
Source: https://github.com/Blosc/c-blosc/archive/v%{version}/blosc-%{version}.tar.gz
8e0df17
Patch0: %{name}-gcc11.patch
94350ef
Orion Poplawski 3f41574
URL:  https://github.com/Blosc/c-blosc
a91e646
BuildRequires: gcc
a91e646
BuildRequires: gcc-c++
26e3712
BuildRequires: cmake
1324eaa
BuildRequires: lz4-devel
b85f625
BuildRequires: snappy-devel
b85f625
BuildRequires: zlib-devel
b467587
BuildRequires: libzstd-devel
26e3712
26e3712
%description
76c553c
Blosc is a compression library designed to transmit data to the processor
76c553c
cache faster than the traditional non-compressed memory fetch.
76c553c
Compression ratios are not very high, but the decompression is very fast.
76c553c
Blosc is meant not only to reduce the size of large datasets on-disk or
26e3712
in-memory, but also to accelerate memory-bound computations.
26e3712
26e3712
%package devel
26e3712
Summary: Header files and libraries for Blosc development
26e3712
Requires: %{name}%{?_isa} = %{version}-%{release}
26e3712
26e3712
%description devel
26e3712
The blosc-devel package contains the header files and libraries needed
26e3712
to develop programs that use the blosc meta-compressor.
26e3712
26e3712
%package bench
26e3712
Summary: Benchmark for the Blosc compressor
26e3712
Requires: %{name} = %{version}-%{release}
2f199ab
Requires: python3-matplotlib
26e3712
26e3712
%description bench
26e3712
The blosc-bench package contains a benchmark suite which evaluates
b85f625
the performance of Blosc, and compares it with memcpy.
26e3712
26e3712
%prep
9a54e5b
%autosetup -n c-%{name}-%{version} -p1
940e175
rm -r internal-complibs/lz4* internal-complibs/zstd*
26e3712
26e3712
# Fix rpath issue
26e3712
sed -i '1i  set\(CMAKE_SKIP_RPATH true\)' bench/CMakeLists.txt
26e3712
73525bb
# Fix cmake detection of pthreads
73525bb
sed -i '1i  set\(CMAKE_POSITION_INDEPENDENT_CODE TRUE\)' CMakeLists.txt
73525bb
b467587
# https://github.com/Blosc/c-blosc/issues/190
b467587
sed -i 's|lib/pkgconfig|%{_lib}/pkgconfig|' CMakeLists.txt
b467587
26e3712
# Add python shebang and permission
2ff45d3
sed -i '1i  #!/usr/bin/python3' bench/plot-speeds.py
26e3712
Orion Poplawski d598a47
%build
26e3712
# Use the proper library path and SSE2 instruction on 64bits systems
9d70380
%cmake \
26e3712
    -DBUILD_STATIC:BOOL=OFF \
9d70380
    -DPREFER_EXTERNAL_LZ4:BOOL=ON \
9d70380
    -DTEST_INCLUDE_BENCH_SUITE:BOOL=OFF \
b60ac04
    -DDEACTIVATE_SNAPPY:BOOL=OFF \
2f199ab
    -DPREFER_EXTERNAL_ZLIB:BOOL=ON \
db930b8
    -DPREFER_EXTERNAL_ZSTD:BOOL=ON
26e3712
db930b8
%cmake_build
26e3712
26e3712
%check
db930b8
export LD_LIBRARY_PATH=%{buildroot}%{_libdir}
db930b8
%ctest
26e3712
26e3712
%install
db930b8
%cmake_install
26e3712
8db4dbc
install -p bench/plot-speeds.py* -Dt %{buildroot}/%{_pkgdocdir}/bench/
76c553c
install -pm 0644 bench/*.c %{buildroot}/%{_pkgdocdir}/bench
26e3712
db930b8
install -p %{_vpath_builddir}/bench/bench -D %{buildroot}/%{_bindir}/%{name}-bench
76c553c
install -p bench/plot-speeds.py %{buildroot}/%{_bindir}/%{name}-plot-times
26e3712
26e3712
%files
26e3712
%exclude %{_pkgdocdir}/bench/
Orion Poplawski 3f41574
%license LICENSES/*
a4a47c9
%doc README.md ANNOUNCE.rst RELEASE_NOTES.rst README*.rst
Orion Poplawski 3f41574
%{_libdir}/libblosc.so.1*
26e3712
26e3712
%files devel
26e3712
%{_libdir}/libblosc.so
b467587
%{_libdir}/pkgconfig/blosc.pc
26e3712
%{_includedir}/blosc.h
Orion Poplawski 3f41574
%{_includedir}/blosc-export.h
26e3712
26e3712
%files bench
26e3712
%{_pkgdocdir}/bench/*.c
26e3712
%{_bindir}/%{name}-bench
26e3712
%{_bindir}/%{name}-plot-times
26e3712
26e3712
26e3712
%changelog
035bc62
%autochangelog