SHA256
1
0
forked from pool/htscodecs
htscodecs/htscodecs.spec
Atri Bhattacharya 77314a0d53 Accepting request 1136375 from home:StefanBruens:branches:science
- 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
2024-01-03 10:52:02 +00:00

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