%define oname zstd %define major 1 %define libname %mklibname %{oname} %{major} %define devname %mklibname %{oname} -d # aarch64 and armv7hl at least currently segfault # in ThreadPool test for the pzstd util %ifarch %{ix86} x86_64 %bcond_without pzstd %endif %bcond_with tests Summary: Zstd compression library Name: zstd Version: 1.4.3 Release: 1 License: BSD and GPLv2+ Group: Archiving/Compression Url: http://www.zstd.net/ Source0: https://github.com/facebook/zstd/archive/v%{version}/%{name}-%{version}.tar.gz Patch1: pzstd.1.patch BuildRequires: gtest-devel %description Zstd, short for Zstandard, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level compression ratio. %files %doc CHANGELOG README.md %{_bindir}/%{name} %{_bindir}/%{name}cat %{_bindir}/%{name}grep %{_bindir}/%{name}less %{_bindir}/%{name}mt %if %{with pzstd} %{_bindir}/p%{name} %{_mandir}/man1/p%{name}.1* %endif %{_bindir}/un%{name} %{_mandir}/man1/%{name}.1* %{_mandir}/man1/%{name}cat.1* %{_mandir}/man1/%{name}grep.1* %{_mandir}/man1/%{name}less.1* %{_mandir}/man1/un%{name}.1* #---------------------------------------------------------------------------- %package -n %{libname} Summary: Zstd shared library Group: System/Libraries %description -n %{libname} Zstandard compression shared library. %files -n %{libname} %{_libdir}/libzstd.so.%{major}* #---------------------------------------------------------------------------- %package -n %{devname} Summary: Header files for Zstd library Group: Development/C Requires: %{libname} = %{EVRD} Provides: %{name}-devel = %{EVRD} %description -n %{devname} Header files for Zstd library. %files -n %{devname} %{_includedir}/zbuff.h %{_includedir}/zdict.h %{_includedir}/zstd.h %{_includedir}/zstd_errors.h %{_libdir}/pkgconfig/libzstd.pc %{_libdir}/libzstd.so #---------------------------------------------------------------------------- %prep %setup -q find -name .gitignore -delete %if %{with pzstd} %patch1 -p1 %endif %build for dir in lib programs; do CFLAGS="%{optflags}" LDFLAGS="%{ldflags}" %make -C "$dir" done %if %{with pzstd} CFLAGS="%{optflags}" LDFLAGS="%{ldflags}" CXXFLAGS="%{optflags} -std=c++11" %make -C 'contrib/pzstd' %endif %install %make_install PREFIX=%{_prefix} LIBDIR=%{_libdir} # Don't install the static lib rm %{buildroot}%{_libdir}/libzstd.a %if %{with pzstd} install -D -m755 contrib/pzstd/pzstd %{buildroot}%{_bindir}/pzstd install -D -m644 programs/%{name}.1 %{buildroot}%{_mandir}/man1/p%{name}.1 %endif %if %{with tests} %check CFLAGS="%{optflags}" LDFLAGS="%{ldflags}" make -C tests test-zstd %if %{with pzstd} CFLAGS="%{optflags}" LDFLAGS="%{ldflags}" CXXFLAGS="%{optflags} -std=c++11" make -C contrib/pzstd test %endif %endif