%define oname zstd %define major 1 %define libname %mklibname %{oname} %{major} %define devname %mklibname %{oname} -d # static libraries are used by qemu. Please don't disable them. %define sdevname %mklibname %{name} -d -s %bcond_with tests Summary: Zstd compression library Name: zstd Version: 1.4.5 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 Patch0: zstd-1.3.4-multi-thread-default.patch BuildRequires: gtest-devel BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(zlib) BuildRequires: cmake BuildRequires: ninja %description Zstd, short for Zstandard, is a fast lossless compression algorithm, targeting real-time compression scenarios at zlib-level compression ratio. %files %{_bindir}/%{name} %{_bindir}/%{name}cat %{_bindir}/%{name}grep %{_bindir}/%{name}less %{_bindir}/%{name}mt %{_bindir}/p%{name} %{_bindir}/un%{name} %{_mandir}/man1/* #---------------------------------------------------------------------------- %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} %doc %{_docdir}/zstd %{_includedir}/*.h %{_libdir}/pkgconfig/libzstd.pc %{_libdir}/libzstd.so %{_libdir}/cmake/%{name}/*.cmake #---------------------------------------------------------------------------- %package -n %{sdevname} Summary: Static libraries for zstd Group: Development/C Requires: %{devname} = %{version}-%{release} %description -n %{sdevname} Static library for zstd. %files -n %{sdevname} %{_libdir}/libzstd.a #---------------------------------------------------------------------------- %prep %autosetup -p1 # Get rid of -L/usr/lib insanity sed -i -e 's,-L\${libdir} ,,g' lib/*.pc.in sed -i -e '/^Cflags:/d' lib/*.pc.in find -name .gitignore -delete %build %set_build_flags pushd build/cmake %cmake -DZSTD_BUILD_CONTRIB:BOOL=ON \ -DZSTD_LEGACY_SUPPORT:BOOL=ON \ -DZSTD_LZ4_SUPPORT:BOOL=ON \ -DZSTD_LZMA_SUPPORT:BOOL=ON \ -DZSTD_PROGRAMS_LINK_SHARED:BOOL=ON \ -DZSTD_ZLIB_SUPPORT:BOOL=ON -G Ninja %ninja_build popd %install pushd build/cmake %ninja_install -C build install -m 755 build/contrib/pzstd/pzstd %{buildroot}%{_bindir}/ install -D -m644 build/programs/%{name}.1 %{buildroot}%{_mandir}/man1/p%{name}.1 popd