# Compile options:
# invoke with: rpmbuild --with ffmpeg to use ffmpeg
%bcond_with     ffmpeg

# Work around broken RPATHs for now
# https://fedoraproject.org/wiki/Changes/Broken_RPATH_will_fail_rpmbuild
%global __brp_check_rpaths %{nil}

%global _privatelibs lib-string-utils.so.*|lib-strings.so.*|lib-utility.so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$

Name:          tenacity
Version:       1.3.1
Release:       2%{?dist}
Summary:       Multitrack audio editor
License:       GPL-2.0-only
URL:           https://codeberg.org/tenacityteam/tenacity
Source0:       https://codeberg.org/tenacityteam/tenacity/archive/%{name}-v%{version}.tar.gz
ExcludeArch:   s390x
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: git
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(flac)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(id3tag)
BuildRequires: lame-devel
BuildRequires: pkgconfig(lv2)
BuildRequires: pkgconfig(mad)
BuildRequires: pkgconfig(ogg)
BuildRequires: pkgconfig(portaudio-2.0) >= 19-16
BuildRequires: portmidi-devel
BuildRequires: pkgconfig(portSMF)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(soundtouch)
BuildRequires: pkgconfig(soxr)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(taglib)
BuildRequires: pkgconfig(twolame)
BuildRequires: pkgconfig(vamp) >= 2.0
BuildRequires: pkgconfig(vorbis)
BuildRequires: wxGTK-devel >= 3.1.0
BuildRequires: pkgconfig(zlib)
%if %{with ffmpeg}
BuildRequires: ffmpeg-devel
%endif
# For new symbols in portaudio
Requires:      portaudio%{?_isa} >= 19-16

# Bundled libnyquist
Provides:      bundled(liblibnyquist)


%description
Tenacity is a cross-platform multitrack audio editor. It allows you to
record sounds directly or to import files in various formats. It features
a few simple effects, all of the editing features you should need, and
unlimited undo. The GUI was built with wxWidgets and the audio I/O
supports PulseAudio, OSS and ALSA under Linux.


%prep
%autosetup -n tenacity


%build
%cmake
%cmake_build


%install
%cmake_install

%{find_lang} %{name}

mkdir %{buildroot}%{_datadir}/doc/%{name}/nyquist
cp -pr lib-src/libnyquist/nyquist/license.txt %{buildroot}%{_datadir}/doc/%{name}/nyquist
cp -pr lib-src/libnyquist/nyquist/Readme.txt %{buildroot}%{_datadir}/doc/%{name}/nyquist
rm %{buildroot}%{_datadir}/doc/%{name}/LICENSE.txt

rm %{buildroot}%{_prefix}/%{name}


%files -f %{name}.lang
%license LICENSE.txt
%{_bindir}/%{name}
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/lib-*
%{_libdir}/liblibnyquist.so
%dir %{_libdir}/%{name}/modules
%{_libdir}/%{name}/modules/*
%{_datadir}/applications/%{name}.desktop
%{_datadir}/metainfo/%{name}.metainfo.xml
%{_datadir}/pixmaps/gnome-mime-application-x-audacity-project.xpm
%{_datadir}/pixmaps/%{name}.xpm
%{_datadir}/pixmaps/%{name}16.xpm
%{_datadir}/pixmaps/%{name}32.xpm
%{_datadir}/mime/packages/%{name}.xml
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/EQDefaultCurves.xml
%dir %{_datadir}/%{name}/nyquist
%{_datadir}/%{name}/nyquist/*
%dir %{_datadir}/%{name}/plug-ins
%{_datadir}/%{name}/plug-ins/*
%{_datadir}/icons/hicolor/16x16/%{name}.png
%{_datadir}/icons/hicolor/22x22/%{name}.png
%{_datadir}/icons/hicolor/24x24/%{name}.png
%{_datadir}/icons/hicolor/32x32/%{name}.png
%{_datadir}/icons/hicolor/48x48/%{name}.png
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/doc/%{name}
%{_mandir}/man1/%{name}.1.gz


%changelog
* Tue Sep 19 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3.1-2
- Add PortSMF dependency

* Mon Sep 18 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3.1-1
- Update to 1.3.1
- Change to SPDX license identifier

* Tue Feb 21 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3-beta2-5
- Fix builds on F38+

* Mon Feb 20 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3-beta2-4
- Manually copy liblibnyquist and note that it is bundled
- Cleanup leftover audacity in usr

* Wed Feb 8 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3-beta2-3
- Remove bundled liblibnyquist, a dependency is required instead

* Wed Feb 8 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3-beta2-2
- Add bundled liblibnyquist

* Mon Feb 6 2023 Brandon Nielsen <nielsenb@jetfuse.net> - 1.3-beta2-1
- Update to 1.3-beta2
- Switch upstream to Codeberg
- Drop forge macros since they don't support codeberg

* Sun Feb 27 2022 Brandon Nielsen <nielsenb@jetfuse.net> - 0-1.20220227gitd7ecf07
- Update to d7ecf07 git revision

* Fri Oct 8 2021 Brandon Nielsen <nielsenb@jetfuse.net> - 0-1.20211008git4df39ad
- Initial specfile