forked from pool/htscodecs
Atri Bhattacharya
77314a0d53
- Update to 1.6.0: * Changes + Replaced the rANS codec SIMD gathers with simulated gathers via scalar memory fetches. This helps AMD Zen4, but importantly it also fixes a disastrous performance regression caused by Intel's DownFall microcode fix. + There is an impact on pre-DownFall speeds, but we should focus on patched CPUs as a priority. + A small speed up to the rans_F_to_s3 function used by order-0 rans decode. + Small speed up to SIMD rans32x16 order-1 encoder by reducing cache misses. Also sped up the rans4x8 order-1 encoder, particularly on AMD Zen4. + Now supports building with "zig cc" * Bug fixes + Improve robustness of name tokeniser when given non 7-bit ASCII and on machines where "char" defaults to unsigned. + Also fixed a 1 byte buffer read-overrun in name tokeniser. + Fix name tokeniser encoder failure with some duplicated streams. + Fixed rans_set_cpu to work multiple times, as well as reinstating the ability to change decode and encode side independently (accidentally lost in commit 958032c). No effect on usage, but it improves the test coverage. + Added a round-trip fuzz tester to test the ability to encode. The old fuzz testing was decode streams only. + Fixed bounds checking in rans_uncompress_O0_32x16_avx2, fixing buffer read overruns. + Removed undefined behaviour in transpose_and_copy(), fixing zig cc builds. OBS-URL: https://build.opensuse.org/request/show/1136375 OBS-URL: https://build.opensuse.org/package/show/science/htscodecs?expand=0&rev=7
85 lines
2.8 KiB
RPMSpec
85 lines
2.8 KiB
RPMSpec
#
|
|
# spec file for package htscodecs
|
|
#
|
|
# Copyright (c) 2024 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 sonum 2
|
|
Name: htscodecs
|
|
Version: 1.6.0
|
|
Release: 0
|
|
Summary: C library for custom compression for CRAM and other formats
|
|
License: MIT
|
|
Group: Productivity/Scientific/Other
|
|
URL: https://github.com/samtools/htscodecs
|
|
Source0: https://github.com/samtools/htscodecs/releases/download/v%{version}/htscodecs-%{version}.tar.gz
|
|
Source100: baselibs.conf
|
|
BuildRequires: autoconf
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: pkgconfig(bzip2)
|
|
BuildRequires: pkgconfig(zlib)
|
|
|
|
%description
|
|
htscodecs provides an API to access CRAM codecs used for "EXTERNAL" block types.
|
|
These consist of two variants of the rANS codec (8-bit and 16-bit renormalisation,
|
|
with run-length encoding and bit-packing also supported in the latter),
|
|
a dynamic arithmetic coder, and custom codecs for name/ID compression
|
|
and quality score compression derived from fqzcomp.
|
|
|
|
%package -n lib%{name}%{sonum}
|
|
Summary: C library for custom compression for CRAM and other formats
|
|
Group: System/Libraries
|
|
|
|
%description -n lib%{name}%{sonum}
|
|
htscodecs provides an API to access CRAM codecs used for "EXTERNAL" block types.
|
|
These consist of two variants of the rANS codec (8-bit and 16-bit renormalisation,
|
|
with run-length encoding and bit-packing also supported in the latter),
|
|
a dynamic arithmetic coder, and custom codecs for name/ID compression
|
|
and quality score compression derived from fqzcomp.
|
|
|
|
%package devel
|
|
Summary: Header files and libraries for compiling against %{name}
|
|
Group: Development/Libraries/C and C++
|
|
Requires: lib%{name}%{sonum} = %{version}
|
|
|
|
%description devel
|
|
Header files and libraries of the samtools project for compiling against %{name}.
|
|
|
|
%prep
|
|
%autosetup -p1
|
|
|
|
%build
|
|
%configure --disable-static
|
|
%make_build
|
|
|
|
%install
|
|
%make_install
|
|
rm %{buildroot}%{_libdir}/lib%{name}.la
|
|
|
|
%post -n lib%{name}%{sonum} -p /sbin/ldconfig
|
|
%postun -n lib%{name}%{sonum} -p /sbin/ldconfig
|
|
|
|
%files -n lib%{name}%{sonum}
|
|
%license LICENSE.md
|
|
%{_libdir}/lib%{name}.so.*
|
|
|
|
%files devel
|
|
%doc README.md NEWS.md
|
|
%{_includedir}/htscodecs
|
|
%{_libdir}/lib%{name}.so
|
|
|
|
%changelog
|