# # spec file for package zstd # # Copyright (c) 2022-2023 ZhuningOS # %define major 1 %define libname lib%{name}%{major} Name: zstd Version: %{major}.5.0 Release: 150400.3.3.1 Summary: Zstandard compression tools License: BSD-3-Clause AND GPL-2.0-only Group: Productivity/Archiving/Compression URL: https://github.com/facebook/zstd Source0: https://github.com/facebook/zstd/releases/download/v%{version}/%{name}-%{version}.tar.gz Source1: https://github.com/facebook/zstd/releases/download/v%{version}/%{name}-%{version}.tar.gz.sig Source99: baselibs.conf Patch1: pzstd.1.patch # CVE-2022-4899 https://github.com/facebook/zstd/pull/3220 Patch2: Disallow-empty-output-directory.patch Patch3: Fix-buffer-underflow-for-null-dir1.patch BuildRequires: gcc # C++ is needed for pzstd only BuildRequires: gcc-c++ BuildRequires: pkgconfig %description Zstd, short for Zstandard, is a lossless compression algorithm. Speed vs. compression trade-off is configurable in small increments. Decompression speed is preserved and remains roughly the same at all settings, a property shared by most LZ compression algorithms, such as zlib or lzma. At roughly the same ratio, zstd (v1.4.0) achieves ~870%% faster compression than gzip. For roughly the same time, zstd achives a ~12%% better ratio than gzip. LZMA outperforms zstd by ~10%% faster compression for same ratio, or ~1–4%% size reduction for same time. # This compression summary is based on https://lists.opensuse.org/opensuse-factory/2019-05/msg00344.html %package -n %{libname} Summary: Zstd compression library Group: System/Libraries %description -n %{libname} Zstd, short for Zstandard, is a lossless compression algorithm, targeting faster compression than zlib at comparable ratios. This subpackage contains the implementation as a shared library. %package -n lib%{name}-devel Summary: Development files for the Zstd compression library Group: Development/Libraries/C and C++ Requires: %{libname} = %{version} Requires: glibc-devel %description -n lib%{name}-devel Zstd, short for Zstandard, is a lossless compression algorithm, targeting faster compression than zlib at comparable ratios. Needed for compiling programs that link with the library. %package -n lib%{name}-devel-static Summary: Development files for the Zstd compression library Group: Development/Libraries/C and C++ BuildRequires: glibc-devel-static Requires: lib%{name}-devel = %{version} %description -n lib%{name}-devel-static Zstd, short for Zstandard, is a lossless compression algorithm, targeting faster compression than zlib at comparable ratios. Needed for compiling programs that link with the library. %prep %autosetup -p1 %build %global _lto_cflags %{_lto_cflags} -ffat-lto-objects export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags} -std=c++11" # lib-mt is alias for multi-threaded library support %make_build -C lib lib-mt for dir in programs contrib/pzstd; do %make_build -C "$dir" done %check export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags} -std=c++11" %make_build -C tests test-zstd #make %{?_smp_mflags} -C contrib/pzstd test-pzstd %install %make_install V=1 VERBOSE=1 PREFIX=%{_prefix} LIBDIR=%{_libdir} install -D -m755 contrib/pzstd/pzstd %{buildroot}%{_bindir}/pzstd install -D -m644 programs/zstd.1 %{buildroot}%{_mandir}/man1/pzstd.1 %files %license COPYING LICENSE %doc README.md CHANGELOG %{_bindir}/* %{_mandir}/man1/*.1%{?ext_man} %files -n %{libname} %license COPYING LICENSE %{_libdir}/libzstd.so.* %files -n lib%{name}-devel %license COPYING LICENSE %{_includedir}/*.h %{_libdir}/pkgconfig/libzstd.pc %{_libdir}/libzstd.so %files -n lib%{name}-devel-static %license COPYING LICENSE %{_libdir}/libzstd.a %post -n %{libname} -p /sbin/ldconfig %postun -n %{libname} -p /sbin/ldconfig %changelog