#
# spec file for package libmysofa
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2025 Andreas Stieger <Andreas.Stieger@gmx.de>
#
# 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 sover 1
%define __builder ninja
Name:           libmysofa
Version:        1.3.3
Release:        1.1
Summary:        Reader for AES SOFA HRTF files
License:        BSD-3-Clause
Group:          Development/Libraries/C and C++
URL:            https://github.com/hoene/libmysofa
Source0:        https://github.com/hoene/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source99:       baselibs.conf
BuildRequires:  c++_compiler
BuildRequires:  cmake >= 3.5
BuildRequires:  ninja
# for tests
BuildRequires:  nodejs-common
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(cunit)
BuildRequires:  pkgconfig(zlib)

%description
This is a C library to read AES SOFA files that contain HRTFs stored
according to the AES69-2015 standard.

%package -n %{name}%{sover}
Summary:        Reader for AES SOFA HRTF files
Group:          System/Libraries

%description -n %{name}%{sover}
This is a C library to read AES SOFA files that contain HRTFs stored
according to the AES69-2015 standard.

%package devel
Summary:        Development headers and libraries for libmysofa
Group:          Development/Libraries/C and C++
Requires:       %{name}%{sover} = %{version}

%description devel
This is a C library to read AES SOFA files that contain HRTFs stored
according to the AES69-2015 standard.

This package contains the development libraries and headers for libmysofa.

%prep
%autosetup -p1

%build
%cmake -DCODE_COVERAGE=OFF
%cmake_build

%install
%cmake_install

%check
%ctest

%ldconfig_scriptlets -n %{name}%{sover}

%files -n %{name}%{sover}
%doc README.md
%license LICENSE
%{_bindir}/mysofa2json
%{_datadir}/%{name}
%{_libdir}/%{name}.so.%{sover}*

%files devel
%license LICENSE
%{_includedir}/*
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_libdir}/cmake/mysofa

%changelog
* Sun Mar  9 2025 Andreas Stieger <andreas.stieger@gmx.de>
- update to 1.3.3:
  * Remove file size limit
  * add an -o output option
  * developer visible fixes and portability fixes
- drop Install-header-when-only-building-shared-lib.patch, included
* Mon Oct 23 2023 Mia Herkt <mia@0x0.st>
- Update to 1.3.2:
  * allow slightly more dense HRTFs
  * allow all kinds of room types
  * target exporting
  * bug fix in memory reader
  * enable big endian support
- Drop 0001-fix-big-endian-convertion-of-double-value.patch
- Add Install-header-when-only-building-shared-lib.patch
  See https://github.com/hoene/libmysofa/issues/210
* Mon Jun 12 2023 Frederic Crozat <fcrozat@suse.com>
- Add 0001-fix-big-endian-convertion-of-double-value.patch:
  backport bigendian fixes from upstream git.
* Sat Oct 29 2022 Mia Herkt <mia@0x0.st>
- Update to 1.3.1:
  * added a memory loader for HRTFs
  * supporting strange head geometrics from MeshHRTF
- Enable test suite
* Thu Dec  9 2021 Andreas Stieger <andreas.stieger@gmx.de>
- update to 1.2.1:
  * CVE-2021-3756: heap-based buffer overflow in loudness(),
    mysofa_check() and readOHDRHeaderMessageDataLayout()
    boo#1192257
* Mon Mar  1 2021 Andreas Stieger <andreas.stieger@gmx.de>
- update to 1.2:
  * CVE-2020-36151: Incorrect handling of input data in
    mysofa_resampler_reset_mem function [boo#1181978]
  * CVE-2020-36148: Incorrect handling of input data in
    verifyAttribute function [boo#1181981]
  * CVE-2020-36152: Buffer overflow in readDataVar in
    hdf/dataobject.c [boo#1181977]
  * CVE-2020-36150: Incorrect handling of input data in loudness
    function [boo#1181979]
  * CVE-2020-36149: Incorrect handling of input data in
    changeAttribute function [boo#1181980]
  * Steinberg audio enhancements for symmetrical HRTFs
* Tue Sep  8 2020 Ismail Dönmez <idonmez@suse.com>
- Set CODE_COVERAGE to OFF to prevent runtime profile data
  generation (bsc#1176414)
* Tue Aug 25 2020 Dirk Mueller <dmueller@suse.com>
- update to 1.1:
  * Support the change of the reference implementation to version 1.1.1
  * Fixing the problem of left / right confusion common in many old SOFA files
  * Support many more HDF features which are used in recent implementations of netcdf
* Tue Feb 11 2020 Martin Herkt <9+suse@cirno.systems>
- Update to version 1.0
  * Fixed CVE-2020-6860 [boo1182883]
  * Support for netcdf 4.7.2 generated files
  * Support for user-defined variables
* Sun Jan  5 2020 Martin Herkt <9+suse@cirno.systems>
- Update to version 0.9.1
  * Extended angular neighbor search to 'close the sphere'
  * Added and exposed mysofa_getfilter_float_nointerp method
  * CVE-2019-20063: hdf/dataobject.c in libmysofa before 0.8 has
    an uninitialized use of memory, as demonstrated by
    mysofa2json [boo#1160040]
  * CVE-2019-20016: improper restriction of recursive function
    calls in readOHDRHeaderMessageDatatype in dataobject.c and
    directblockRead in fractalhead.c may lead to stack
    consumption [boo#1159839]
  * CVE-2019-16091: out-of-bounds read in directblockRead in
    hdf/fractalhead.c [boo#1149919]
  * CVE-2019-16095: invalid read in getDimension in hrtf/reader.c
    [boo#1149926]
  * CVE-2019-16094: invalid read in
    readOHDRHeaderMessageDataLayout in hdf/dataobject.c
    [boo#1149924]
  * CVE-2019-16093: invalid write in
    readOHDRHeaderMessageDataLayout in hdf/dataobject.c
    [boo#1149922]
  * CVE-2019-16092: NULL pointer dereference in getHrtf in
    hrtf/reader.c [boo#1149920]
- Drop libmysofa-0-pkgconfig-paths.patch
* Sun Mar 31 2019 Martin Herkt <9+suse@cirno.systems>
- Update to version 0.7
  * fixed two important security holes
    CVE-2019-10672
    boo#1131106
  * fixed bug mysofa_interpolate when interpolation is not needed
  * fixed bug with simple hrtf lookup
  * added advanced open function and various enhancements
  * fixed memory leak in lookup.c
- Drop libmysofa-0-gnu-install-dirs.patch
- Add libmysofa-0-pkgconfig-paths.patch
* Mon Apr 30 2018 jengelh@inai.de
- Ensure neutrality of description. Adjust RPM groups.
* Wed Apr 25 2018 9+suse@cirno.systems
- Init, 0.6