File ardour.spec of Package ardour
# spec file for package ardour
#
# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany.
#
# 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 http://bugs.opensuse.org/
%define dirbase ardour8
Name: ardour
Version: 8.12.0
Release: 0
Summary: Multichannel Digital Audio Workstation
License: GPL-2.0
Group: Productivity/Multimedia/Sound/Editors and Convertors
Url: http://ardour.org
Source0: Ardour-%{version}.tar.bz2
Source1: ardour.desktop
Source2: ardour.png
Source3: ardour-rpmlintrc
Source4: revision.cc
Source5: ardour-pipewire-alsa.desktop
Source6: ArdourBundledMedia.zip
Patch0: no-harvid-fix.patch
# PATCH-FIX-OPENSUSE: openSUSE uses /usr/lib64/vst3 for VST3s
Patch1: fix-vst3-path.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: boost-devel >= 1.49.0
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: fftw3-threads-devel
BuildRequires: filesystem
BuildRequires: gcc-c++
BuildRequires: gettext-devel
BuildRequires: graphviz
BuildRequires: hicolor-icon-theme
BuildRequires: jack-devel
BuildRequires: libcppunit-devel
BuildRequires: libtool
BuildRequires: pkgconfig
BuildRequires: python3
BuildRequires: readline-devel
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(atkmm-1.6) >= 2.22.6
BuildRequires: pkgconfig(aubio) >= 0.3.2
BuildRequires: pkgconfig(cairo) >= 1.10.0
BuildRequires: pkgconfig(cairomm-1.0) >= 1.10.0
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(fftw3) >= 3.3.1
BuildRequires: pkgconfig(flac) >= 1.2.1
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(giomm-2.4) >= 2.32.0
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glibmm-2.4) >= 2.32.0
BuildRequires: pkgconfig(gtk+-2.0) >= 2.24.18
BuildRequires: pkgconfig(gtkmm-2.4) >= 2.24.2
BuildRequires: pkgconfig(jack)
BuildRequires: pkgconfig(libarchive)
BuildRequires: pkgconfig(liblo) >= 0.26
BuildRequires: pkgconfig(libwebsockets)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(lilv-0)
BuildRequires: pkgconfig(lrdf)
BuildRequires: pkgconfig(lv2) >= 1.2.0
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(ogg) >= 1.3.0
BuildRequires: pkgconfig(pangomm-1.4) >= 2.28.4
BuildRequires: pkgconfig(raptor2) >= 2.0.6
BuildRequires: pkgconfig(rubberband) >= 1.8.1
BuildRequires: pkgconfig(samplerate) >= 0.1.8
BuildRequires: pkgconfig(serd-0)
BuildRequires: pkgconfig(sigc++-2.0) >= 2.2.10
BuildRequires: pkgconfig(sndfile) >= 1.0.25
BuildRequires: pkgconfig(sord-0)
BuildRequires: pkgconfig(sratom-0)
BuildRequires: pkgconfig(suil-0)
BuildRequires: pkgconfig(taglib)
BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(vamp)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xinerama)
BuildRequires: desktop-file-utils
BuildRequires: itstool
BuildRequires: git
BuildRequires: curl-devel
BuildRequires: libhidapi-devel
BuildRequires: libpulse-devel
BuildRequires: clang-devel
BuildRequires: unzip
Requires(post): desktop-file-utils
Requires(post): shared-mime-info
Requires(postun): desktop-file-utils
Requires(postun): shared-mime-info
Requires: graphviz
Requires: lv2
Requires: ffmpeg
Recommends: xjadeo
Recommends: harvid
Recommends: a2jmidid
Recommends: libfftw3_threads3
Recommends: gtk2-engine-clearlooks
Conflicts: ardour6
Conflicts: ardour7
Provides: ardour8
%description
Ardour is a multichannel hard disk recorder (HDR) and digital audio
workstation (DAW). It is capable of simultaneous recording 24 or more
channels of 32 bit audio at 48kHz. Ardour is intended to function as a
"professional" HDR system, replacing dedicated hardware solutions such
as the Mackie HDR, the Tascam 2424 and more traditional tape systems
like the Alesis ADAT series. It is also intended to provide the same
or better functionality as software systems such as ProTools,
Samplitude, Logic Audio, Nuendo and Cubase VST (we acknowledge these
and all other names as trademarks of their respective owners). It
supports MIDI Machine Control, and so can be controlled from any MMC
controller, such as the Mackie Digital 8 Bus mixer and many other
modern digital mixers.
%package pipewire-alsa
Summary: Ardour desktop entry for using Pipewire via ALSA
Requires: %{name} = %{version}
BuildArch: noarch
%description pipewire-alsa
This package creates a desktop entry for using Ardour on the Pipewire
device via the ALSA backend. This will make Ardour show up in
connection managers like Qjackctl, Patchage and Helvum when using
Pipewire.
%package lua-extra
Summary: Extra Lua scripts for Ardour
Requires: %{name} = %{version}
BuildArch: noarch
%description lua-extra
Extra Lua scripts for Ardour, taken from the official source code.
%package media-extra
Summary: Extra media bundled with Ardour
# Last downloaded on: 20221016
URL: http://stuff.ardour.org/loops/ArdourBundledMedia.zip
Requires: %{name}
BuildArch: noarch
%description media-extra
This is the optional media (MIDI beats, loops and progressions)
bundled with Ardour.
%prep
%setup q -n Ardour-%{version}
find . -name ".gitignore" -exec rm {} \;
chmod -x ./doc/*.svg
chmod -x ./doc/*.txt
# revision.cc is sometimes missing in source
cp -v %{SOURCE4} libs/ardour/
%autopatch -p1
%build
python3 waf configure \
--prefix=%{_prefix} \
--libdir=%{_libdir} \
--includedir=%{_includedir} \
--configdir=%{_sysconfdir} \
--docdir=%{_docdir} \
--strict \
--libjack=weak \
--freedesktop \
--no-phone-home \
--debug-symbols \
--backtrace \
--noconfirm \
--optimize \
--ptformat \
--with-backends=jack,alsa,pulseaudio,dummy \
--docs
python3 waf i18n
python3 waf %{?_smp_mflags}
%install
python3 waf --destdir=%{buildroot} install -v
mkdir -p %{buildroot}%{_datadir}/{pixmaps,applications/packages}/
install -m 644 %{SOURCE2} %{buildroot}%{_datadir}/pixmaps/
install -m 644 %{SOURCE1} %{buildroot}%{_datadir}/applications/
%suse_update_desktop_file -i ardour AudioVideo AudioVideoEditing
%suse_update_desktop_file -i ardour-pipewire-alsa AudioVideo AudioVideoEditing
rm %{buildroot}%{_datadir}/applications/ardour8.desktop
# Extra Lua scripts
cp share/scripts/_*.lua %{buildroot}%{_datadir}/%{dirbase}/scripts
# Optional bundled media
unzip %{SOURCE6} -d %{buildroot}%{_datadir}/%{dirbase}/media
find %{buildroot}%{_datadir}/%{dirbase}/media -type f -name '*~' -exec rm -f '{}' \;
%find_lang %{dirbase} %{?no_lang_C} %{dirbase}.lang
%find_lang gtk2_%{dirbase} %{?no_lang_C} %{dirbase}.lang
%find_lang gtkmm2ext3 %{?no_lang_C} %{dirbase}.lang
%fdupes -s %{buildroot}/%{_datadir}
%files media-extra
%dir %{_datadir}/%{dirbase}
%dir %{_datadir}/%{dirbase}/media
"%{_datadir}/%{dirbase}/media/MIDI Beats"
"%{_datadir}/%{dirbase}/media/MIDI Chords"
"%{_datadir}/%{dirbase}/media/MIDI Progressions"
%files -f %{dirbase}.lang
%defattr(-,root,root)
%license COPYING
%doc doc README
%{_bindir}/%{dirbase}
%{_bindir}/%{dirbase}-copy-mixer
%{_bindir}/%{dirbase}-export
%{_bindir}/%{dirbase}-lua
%{_bindir}/%{dirbase}-new_empty_session
%{_bindir}/%{dirbase}-new_session
%config(noreplace) %{_sysconfdir}/%{dirbase}
%dir %{_libdir}/%{dirbase}
%{_libdir}/%{dirbase}/*
%dir %{_datadir}/%{dirbase}
%exclude %{_datadir}/%{dirbase}/templates/.stub
%exclude %{_datadir}/%{dirbase}/scripts/_*.lua
%exclude "%{_datadir}/%{dirbase}/media/MIDI Beats"
%exclude "%{_datadir}/%{dirbase}/media/MIDI Chords"
%exclude "%{_datadir}/%{dirbase}/media/MIDI Progressions"
%{_datadir}/%{dirbase}/*
%{_datadir}/appdata/*
%{_datadir}/applications/ardour.desktop
%dir %{_datadir}/mime/
%dir %{_datadir}/mime/packages/
%{_datadir}/mime/packages/ardour.xml
%dir %{_datadir}/pixmaps
%{_datadir}/pixmaps/*
%dir %{_datadir}/icons
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/16x16
%dir %{_datadir}/icons/hicolor/16x16/apps/
%{_datadir}/icons/hicolor/16x16/apps/%{dirbase}.png
%dir %{_datadir}/icons/hicolor/22x22/
%dir %{_datadir}/icons/hicolor/22x22/apps
%{_datadir}/icons/hicolor/22x22/apps/%{dirbase}.png
%dir %{_datadir}/icons/hicolor/256x256
%dir %{_datadir}/icons/hicolor/256x256/apps
%{_datadir}/icons/hicolor/256x256/apps/%{dirbase}.png
%dir %{_datadir}/icons/hicolor/32x32
%dir %{_datadir}/icons/hicolor/32x32/apps
%{_datadir}/icons/hicolor/32x32/apps/%{dirbase}.png
%dir %{_datadir}/icons/hicolor/48x48
%dir %{_datadir}/icons/hicolor/48x48/apps
%{_datadir}/icons/hicolor/48x48/apps/%{dirbase}.png
%dir %{_datadir}/icons/hicolor/512x512
%dir %{_datadir}/icons/hicolor/512x512/apps
%{_datadir}/icons/hicolor/512x512/apps/%{dirbase}.png
%files pipewire-alsa
%{_datadir}/applications/ardour-pipewire-alsa.desktop
%files lua-extra
%dir %{_datadir}/%{dirbase}
%dir %{_datadir}/%{dirbase}/scripts
%{_datadir}/%{dirbase}/scripts/_*.lua
%changelog