#
# spec file for package wavpack
#
# Copyright (c) 2025 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 soname  1
Name:           wavpack
Version:        5.8.1
Release:        1.2
Summary:        Hybrid Lossless Audio Compression Format
License:        BSD-3-Clause
Group:          Productivity/Multimedia/Sound/Editors and Convertors
URL:            https://www.wavpack.com/
Source0:        https://www.wavpack.com/%{name}-%{version}.tar.bz2
Source99:       baselibs.conf
BuildRequires:  pkgconfig
%{?suse_build_hwcaps_libs}

%description
WavPack is an open audio compression format providing lossless, high-quality
lossy, and unique hybrid compression modes.

Lossless mode is ideal for archiving audio material or any other situation
where quality is paramount. The compression ratio depends on the source
material, but generally is between 30%% and 70%%.

The hybrid mode creates both, a relatively small, high-quality lossy file that
can be used all by itself, and a "correction" file that (when combined with the
lossy file) provides full lossless restoration. For some users, this means
never having to choose between lossless and lossy compression.

%package -n libwavpack%{soname}
Summary:        Hybrid Lossless Audio Compression Format
Group:          System/Libraries

%description -n libwavpack%{soname}
WavPack is an open audio compression format providing lossless, high-quality
lossy, and unique hybrid compression modes.
Lossless mode is ideal for archiving audio material or any other situation
where quality is paramount. The compression ratio depends on the source
material, but generally is between 30%% and 70%%.

%package devel
Summary:        Development files for wavpack, an audio compression format
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}
Requires:       glibc-devel

%description devel
WavPack is an open audio compression format providing lossless, high-quality
lossy, and unique hybrid compression modes.

This subpackage contains libraries and header files for developing
applications that want to make use of wavpack.

%package doc
Summary:        Documentation files for wavpack, an audio compression format
Group:          Development/Libraries/C and C++
Requires:       %{name} = %{version}

%description doc
WavPack is an open audio compression format providing lossless, high-quality
lossy, and unique hybrid compression modes.

This subpackage contains development documentation for applications that
want to make use of wavpack.

%prep
%setup -q

%build
%configure --disable-static
%make_build

%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print

install -d -m 755 %{buildroot}%{_defaultdocdir}
mv %{buildroot}/usr/share/doc/%name %{buildroot}%{_defaultdocdir}

%check
%make_build check

%post   -n libwavpack%{soname} -p /sbin/ldconfig
%postun -n libwavpack%{soname} -p /sbin/ldconfig

%files
%license COPYING
%{_bindir}/wavpack
%{_bindir}/wvgain
%{_bindir}/wvunpack
%{_bindir}/wvtag
%{_mandir}/man?/*

%files -n libwavpack%{soname}
%{_libdir}/libwavpack.so.%{soname}
%{_libdir}/libwavpack.so.%{soname}.*

%files devel
%{_includedir}/wavpack
%{_libdir}/libwavpack.so
%{_libdir}/pkgconfig/wavpack.pc

%files doc
%doc %_defaultdocdir/%name

%changelog
* Sun Feb  9 2025 Dirk Müller <dmueller@suse.com>
- update to 5.8.1:
  * build fixes for cmake build system
* Tue Jan 28 2025 Martin Hauke <mardnh@gmx.de>
- Update to version 5.8.0
  * added: if present, use multiple cores by default.
  * added: option --no-threads to force single-threading.
  * fixed: noise issue in hybrid mode (low bitrate / high sample
    rate).
  * improved: all new DNS algorithm for better hybrid mode quality.
  * improved: "extra" option with multithreading and hybrid modes.
  * added: TSOC (Composer Sort) added to handled ID3v2 tags.
  * added: --no-overwrite command-line option to wvunpack.
  * fixed: handling of 24+ channels (CoolEdit / Audition).
  * fixed: handling of unpacked samples in WAV files.
  * fixed: rare command-line option parsing issue.
* Sat Mar 16 2024 Andrea Manzini <andrea.manzini@suse.com>
- update to 5.7.0:
  * added: multithreaded encoding and decoding to libwavpack (optional)
  * added: option to specify multithreading in CLI programs (--threads)
  * added: multithreading support to Cool Edit filter (always enabled)
  * added: support for ID3v2.4 when importing tags (--import-id3)
  * added: optional bitrate specification to wavpack -c option
  * added: recognize WAV files with new fourcc of 'BW64'
  * fixed: decode non-compliant FFmpeg files over 8 channels
  * fixed: accept some common but non-compliant AIFF files
  * fixed: automatically delete newly obsolete correction files
  * fixed: don't delete source files if data loss warnings occur
  * improved: ID3v2 tag support (more items, multiple values, pics, etc)
  * improved: compression of 32-bit integer files (--optimize-int32)
  * improved: convert the man pages to mdoc(7)
  * improved: cmake & autoconf support
- Build AVX2 enabled hwcaps library for x86_64-v3
* Sat Dec  3 2022 Dirk Müller <dmueller@suse.com>
- update to 5.6.0:
  * added: AIFF file import/export support
  * added: WATCOM compiler and OS/2 support
  * added: cmake support for mingw, builds Cooledit + Winamp plugins
  * added: --force-even-byte-depth option for rounding up bit depths
  * fixed: detect and report PCM files having non-zero padding bits
  * fixed: possible crash when displaying long channel assignments
  * fixed: big-endian-sourced "raw" files gave big-endian "wav"s
  * fixed: numerous minor issues
* Mon Jul 11 2022 Dirk Müller <dmueller@suse.com>
- update to 5.5.0:
  * fixed: CVE-2021-44269 (encoding crafted DSD file triggers OOB read crash)
  * fixed: very long filenames cause stack-overflow crash in all CLI programs
  * fixed: the length stored in WAV headers not always corrected when using -i
  * fixed: attempting to encode raw DSD audio from stdin sometimes causes crash
  * fixed: DSD to PCM decimation: small clicks between tracks and tiny DC offset
  * fixed: length update in library-generated WAV headers on big-endian machines
  * fixed: sanitize custom extensions read from WavPack files to be alphanumeric
  * added: accepting brace-delimited options in the wavpack executable filename
  * added: "--drop" option to Windows executables for multi-file "drag-and-drop"
  * added" "--raw-pcm" option to wvunpack executable (does DSD --> 24-bit PCM)
  * added: "--no-overwrite" option to wavpack executable (to resume sessions)
  * improved: build system clean-up including switch to non-recursive "make"
- drop wavpack-CVE-2021-44269.patch (upstream)
- add doc subpackage
* Wed Mar 16 2022 pgajdos@suse.com
- security update
- added patches
  fix CVE-2021-44269 [bsc#1197020], out of bounds read in processing .wav file
  + wavpack-CVE-2021-44269.patch
* Mon Jan 18 2021 Alexandros Toptsoglou <atoptsoglou@suse.com>
- Update to version 5.4.0
  * CVE-2020-35738: Fixed an out-of-bounds write in WavpackPackSamples (bsc#1180414)
  * fixed: disable A32 asm code when building for Apple silicon
  * fixed: issues with Adobe-style floating-point WAV files
  * added: --normalize-floats option to wvunpack for correctly
    exporting un-normalized floating-point files
* Fri Apr 17 2020 Martin Pluskal <mpluskal@suse.com>
- Update to version 5.3.0
  * Plenty of changes
  * Drop _service and switch to regular release
* Fri Aug 30 2019 dimstar@opensuse.org
- Change version to 5.1.0+71.22977b2:
  + This tarball is created from git master, which is 71 commits
    AHEAD of 5.1.0; thus, 5.1.0~xxx is wrong, as this implies a
    version leading up to 5.1.0. Other than that, there is no
    change in the sources: it's the same commit as before
    (22977b2).
* Wed Aug 14 2019 tchvatal@suse.com
- Update to version 5.1.0~git20190420.22977b2:
  * Switch to github service to collect all the CVE fixes as releases
    are not really happening often
  * bsc#1133384 CVE-2019-11498
  * bsc#1141337 CVE-2019-1010315
  * bsc#1141338 CVE-2019-1010318
  * bsc#1141339 CVE-2019-1010317
  * bsc#1141334 CVE-2019-1010319
- Remove merged patches:
  * CVE-2018-19840.patch
  * CVE-2018-19841.patch
  * CVE-2018-7253.patch
  * CVE-2018-7254.patch
  * wavpack-CVE-2018-6767.patch
* Mon Jan  7 2019 sbrabec@suse.com
- Fix denial-of-service (resource exhaustion caused by an infinite
  loop; bsc#1120930, CVE-2018-19840, CVE-2018-19840.patch).
- Fix denial-of-service (out-of-bounds read and application crash;
  bsc#1120929, CVE-2018-19841, CVE-2018-19841.patch).
* Tue Feb 20 2018 kbabioch@suse.com
- Added CVE-2018-7253.patch: Fixed a heap based buffer overread in
  cli/dsdiff.c, which allowed remote attackers to cause DoS via
  a specially crafted input file (CVE-2018-7253, bsc#1081692)
- Added CVE-2018-7254.patch: Fixed a buffer overread in cli/caff.c,
  which allowed remote attackers to cause DoS via a specially
  crafted input file (CVE-2018-7254, bsc#1081693)
* Mon Feb 19 2018 pmonrealgonzalez@suse.com
- Security fix [bsc#1079746, CVE-2018-6767]
  * Crafted wav file can trigger a stack buffer overflow when
    parsing the file
  * Added wavpack-CVE-2018-6767.patch
* Mon Nov 13 2017 jengelh@inai.de
- Compact description. Drop pointless --with-pic since no static
  libs are built.
* Thu Nov  9 2017 aavindraa@gmail.com
- Update to version 5.1.0
  * new: command-line tagging utility (wvtag)
  * added: option to import ID3v2.3 tags from Sony DSF files
  * fixed: fuzz test failures from AFL reported on SourceForge
  * improved: DSD decimation filter (less HF rolloff & CPU use)
  * fixed: non-byte audio depths (12-bit, 20-bit) not showing
  * fixed: rare case of noise-shaping triggering a lossy mute
  * fixed: recognize UTF-8 BOM when reading text files
  * fixed: a few portability issues
- Includes changes from 5.0.0:
  * new: input formats (RF64, Wave64, and CAF)
  * removed: support for legacy WavPack files (< 4.0)
  * added: lossless DSD audio in Philips DSDIFF and Sony DSF files
  * fixed: seeking in > 2GB WavPack files (new stream reader)
  * fixed: accept > 4GB source audio files (all formats)
  * improved: increase maximum samples from 2^32 to 2^40
  * added: block checksums for robustness to corruption
  * added: support for non-standard channel identities
  * added: block decoder for streaming applications
  * added: new pdf documentation
- For other changes, see upstream:
  * https://github.com/dbry/WavPack/blob/master/ChangeLog
- cleanup with spec-cleaner
- remove wavpack-fix_pkgconfig.patch, fixed upstream in:
  * d440649aa113797a50e94285c8c037dc2ad7a5a9
  * 779a2e62783acc6a46f75dd89359e95079ef708a
  * 7846e95eb1c3fa97da41dfe96de532c2df5ad281
- remove license.txt, use upstream copying file instead
- Drop Requires, Provides and Obsoletes, as the SUSE versions they
  were needed for are now EOL.
* Sat Jun 22 2013 crrodriguez@opensuse.org
- update to WavPack 4.70-beta (packaged as 4.60.99)
  * 4GB file support on 32-bit OS
  * memcpy() not always used correctly (Linux targets)
  * unsigned char issue (ARM targets)
  * use temporary files for safer overwriting
* Mon Feb 13 2012 coolo@suse.com
- patch license to follow spdx.org standard
* Fri Nov 25 2011 coolo@suse.com
- add libtool as buildrequire to avoid implicit dependency
* Fri Nov 25 2011 coolo@suse.com
- remove _service
* Sun Mar  6 2011 reddwarf@opensuse.org
- Add libwavpack1 to baselibs.conf
* Wed Dec  8 2010 cristian.rodriguez@opensuse.org
- Update to version 4.60.1
  * fixed: filename specs in tag extractions failed in batch operations
  * fixed: prevent creation of APEv2 tags > 1 MB (which we can't read)
  * fixed: crash when decoding old WavPack files (pre version 4.0)
  * added: man pages to build system and updated with newer options
* Fri Apr 30 2010 meissner@suse.de
- buildrequire pkgconfig
* Thu Sep  4 2008 sbrabec@suse.cz
- Updated to version 4.50.1:
  * added dynamic noise shaping for improved hybrid quality
  * added option to merge blocks of similar redundancy
  * added ability to store and retrieve extra mode level
  * improved bitrate calculation
  * improved decoding of corrupt and nonconforming files
  * added optimize storage of LossyWAV output files
  * added transcoding API
  * added metadata writing API
  * added full Unicode support
  * multichannel and 24-bit audio improvements
  * portability and crash fixes
* Mon Aug 13 2007 crrodriguez@suse.de
- remove static libraries and useless libtool archive
* Fri Jul 27 2007 sbrabec@suse.cz
- Updated to version 4.41.0:
  * bug fixes
  * improvements
  * new features
  * new optimization code
  * for complete list of changes see ChangeLog
- Split package according to shared library packaging policy.
* Thu Mar 29 2007 sbrabec@suse.cz
- "comparison is always false" warnings fix (David Bryant).
* Wed Mar 28 2007 sbrabec@suse.cz
- New SuSE package, version 4.40.0, based on work of Toni Graffy
  <toni@links2linux.de>.