# Use the compiler default standard %bcond_with cxx11 # gcc 4.8 doesn't seem to like bluetooth headers with strict %bcond_with strict # the test scripts seem to be broken %bcond_with tests # whether to do a verbose build %bcond_without verbose_build %if %{with verbose_build} %global _verbose -v %else %global _verbose %{nil} %endif # whether to use system libraries %bcond_without system_libs %global backends jack,alsa,dummy %global default_backend jack # Don't generate provides for internal shared objects and plugins %global internal_libs_re (ardour.*|audiographer|canvas|evoral|gtkmm2ext|jack_audiobackend|midipp|pan[12]in2out|panbalance|panvbap|pbd|ptformat|qmdsp|timecode|waveview|widgets) %global __provides_exclude_from ^%{_libdir}/(%{name}|lv2)/.*$ %global __requires_exclude ^lib%{internal_libs_re}\.so.*$ # This package is named ardour5 to allow parallel installation with older versions of Ardour. Name: ardour5 Version: 5.12.0 Release: 2%{?dist} Summary: Digital Audio Workstation License: GPLv3+ URL: http://ardour.org # Not available via direct download. Download via # http://ardour.org/download.html Source0: Ardour-%{version}.tar.bz2 # BSD 2/3-clause, ISC licenses and GPLv3+ license terms used in some code files Source1: LICENSING Source2: gpl-3.0.txt # AppData release tags need a date to be valid # https://github.com/Ardour/ardour/pull/261 Patch0: ardour5-5.12.0-appdata.patch # Patched (untracked) revision.cc, created with the above Patch1: ardour5-%{version}-appdata-revision.patch # QM-DSP library is missing kiss-fft functions (#1494796) Patch2: %{name}-missing-kissfft.patch BuildRequires: alsa-lib-devel BuildRequires: aubio-devel >= 0.3.2 BuildRequires: bluez-libs-devel BuildRequires: boost-devel >= 1.39 BuildRequires: cairomm-devel >= 1.8.4 BuildRequires: cppunit-devel >= 1.12.0 BuildRequires: cwiid-devel >= 0.6.00 BuildRequires: dbus-devel BuildRequires: desktop-file-utils BuildRequires: doxygen BuildRequires: fftw-devel BuildRequires: flac-devel >= 1.2.1 BuildRequires: fluidsynth-devel >= 1.1.6 BuildRequires: fontconfig BuildRequires: gettext BuildRequires: glib2-devel >= 2.28.0 BuildRequires: glibmm24-devel >= 2.32.0 BuildRequires: graphviz BuildRequires: gtk2-devel >= 2.18 BuildRequires: gtkmm24-devel >= 2.18 BuildRequires: itstool >= 2.0.0 BuildRequires: jack-audio-connection-kit-devel >= 1.9.10 BuildRequires: kernel-headers BuildRequires: libappstream-glib BuildRequires: libarchive-devel >= 3.0.0 BuildRequires: libcurl-devel >= 7.0.0 BuildRequires: libgnomecanvas-devel >= 2.30 BuildRequires: libgnomecanvasmm26-devel >= 2.16 BuildRequires: liblo-devel >= 0.26 BuildRequires: liblrdf-devel >= 0.4.0 BuildRequires: libltc-devel >= 1.1.1 BuildRequires: libogg-devel >= 1.1.2 BuildRequires: libsamplerate-devel >= 0.1.7 BuildRequires: libsigc++20-devel >= 2.0 BuildRequires: libsndfile-devel >= 1.0.18 BuildRequires: libusbx-devel BuildRequires: libuuid-devel BuildRequires: libX11-devel >= 1.1 BuildRequires: libxml2-devel BuildRequires: lilv-devel >= 0.14.0 BuildRequires: lv2-devel >= 1.0.0 BuildRequires: pangomm-devel >= 1.4 # https://fedoraproject.org/wiki/Packaging:Python#Dependencies BuildRequires: python2 BuildRequires: kiss-fft-devel BuildRequires: qm-dsp-static BuildRequires: readline-devel BuildRequires: rubberband-devel >= 1.0 BuildRequires: serd-devel >= 0.14.0 BuildRequires: sord-devel >= 0.8.0 BuildRequires: sratom-devel >= 0.2.0 BuildRequires: suil-devel >= 0.6.0 BuildRequires: taglib-devel >= 1.6 BuildRequires: vamp-plugin-sdk-devel >= 2.1 # https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B BuildRequires: gcc-c++ Requires: %{name}-audiobackend%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %if ! 0%{?fedora}%{?rhel} || 0%{?fedora} >= 21 || 0%{?rhel} >= 8 Recommends: %{name}-audiobackend-%{default_backend}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} %endif Requires: google-droid-sans-mono-fonts # custom variant of the clearlooks engine used by ardour # version guessed (conservatively) by copyright of 2007 Provides: bundled(gtk-theme-engine-clearlooks) = 2.9.0 # stripped down variant of libsmf, the complete version can be found at # http://libsmf.sf.net Provides: bundled(libsmf) = 1.2 # lua 5.3.3 with custom C++ wrapper Provides: bundled(lua) = 5.3.3 # copylib: only a header # https://github.com/vinniefalco/LuaBridge -- 1.0.2-111-g04b47d7 Provides: bundled(LuaBridge) = 1.0.2 # libmidi++ and libpbd are internal to ardour, written by the main author Provides: bundled(midi++) = 4.1.0 Provides: bundled(pbd) = 4.1.0 # Ardour 5 is backwards-compatible to versions 3 and 4, obsolete them from # Fedora 23 and 25 on, respectively %if 0%{?fedora} >= 23 || 0%{?rhel} >= 8 Obsoletes: ardour3 Conflicts: ardour3 %endif %if 0%{?fedora} >= 25 || 0%{?rhel} >= 8 Obsoletes: ardour4 Conflicts: ardour4 %endif %description Ardour is a multi-channel digital audio workstation, allowing users to record, edit, mix and master audio and MIDI projects. It is targeted at audio engineers, musicians, soundtrack editors and composers. # This macro creates a backend subpackage. Needs to be %%define, not %%global. # %%backend_package %define backend_package() \ %package %{1}backend-%{lua: print(string.lower(rpm.expand("%2")))}\ Summary: %{2} %{1} backend for %{name}\ Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}\ Provides: %{name}-%{1}backend%{?_isa}\ Obsoletes: ardour4-%{1}backend-%{lua: print(string.lower(rpm.expand("%2")))}\ Conflicts: ardour4-%{1}backend-%{lua: print(string.lower(rpm.expand("%2")))}\ %{?3:License: %{3}}\ \ %description %{1}backend-%{lua: print(string.lower(rpm.expand("%2")))}\ This package provides the %{2} %{1} backend for Ardour.\ \ %files %{1}backend-%{lua: print(string.lower(rpm.expand("%2")))}\ %{_libdir}/%{name}/backends/lib%{lua: print(string.lower(rpm.expand("%2")))}_%{1}backend.so %backend_package audio ALSA %backend_package audio JACK %backend_package audio Dummy %prep %autosetup -p1 -n Ardour-%{version} %if %{with system_libs} # remove bundled library sources for i in libltc qm-dsp; do find "libs/$i" \( -name \*.\[ch\] -o -name \*.cc -o -name \*.\[ch\]pp \) -delete done %endif # use versionized name for all man pages for fromfile in ardour.1 ardour.1.??; do tofile="%{name}${fromfile#ardour}" cp -p "$fromfile" "$tofile" done cp %{SOURCE1} %{SOURCE2} . %build export LC_ALL=en_US.UTF-8 export LD_FLAGS="%{__global_ldflags}" ./waf configure \ %if %{with strict} --strict \ %endif %if %{with tests} --test \ %endif --prefix="%_prefix" \ --bindir="%_bindir" \ --configdir="%_sysconfdir" \ --datadir="%_datadir" \ --includedir="%_includedir" \ --libdir="%_libdir" \ --mandir="%_mandir" \ --docdir="%_docdir" \ --docs \ --lv2 \ --lxvst \ --nls \ --noconfirm \ --no-phone-home \ --optimize \ %ifarch %ix86 x86_64 --arch="%optflags -msse -mfpmath=sse -DUSE_XMMINTRIN" \ %else --arch="%optflags" \ %endif %if %{with system_libs} --use-external-libs \ %endif %if %{with cxx11} --cxx11 \ %endif --freedesktop \ --with-backends=%{backends} ./waf build %{_verbose} %{?_smp_mflags} ./waf i18n %{_verbose} %{?_smp_mflags} %install ./waf --destdir=%{buildroot} install %{_verbose} # ArdourMono.ttf is really Droid Sans Mono ln -snf ../fonts/google-droid/DroidSansMono.ttf %{buildroot}%{_datadir}/%{name}/ArdourMono.ttf # install man pages install -d -m755 %{buildroot}%{_mandir}/man1 install -p -m644 %{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 for fromfile in %{name}.1.??; do lang="${fromfile#%{name}.1.}" todir="%{buildroot}%{_mandir}/${lang}/man1" tofile="${todir}/%{name}.1" install -d -m755 "$todir" install -p -m644 "$fromfile" "$tofile" done # install icons to freedesktop locations for s in 16 22 32 48 256 512; do mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps ln -s ../../../../%{name}/resources/Ardour-icon_${s}px.png \ %{buildroot}%{_datadir}/icons/hicolor/${s}x${s}/apps/%{name}.png done # tweak and install desktop file mkdir -p %{buildroot}%{_datadir}/applications/ desktop-file-install --dir %{buildroot}%{_datadir}/applications \ --set-key=Name --set-value="Ardour %{version}" \ --set-generic-name="Digital Audio Workstation" \ --set-key=X-GNOME-FullName \ --set-value="Ardour v%{version} (Digital Audio Workstation)" \ --set-comment="Record, mix and master audio" \ --remove-category=AudioEditing \ --add-category=X-AudioEditing \ build/gtk2_ardour/%{name}.desktop # install mime entry mkdir -p %{buildroot}%{_datadir}/mime/packages/ install -p -m 0644 gtk2_ardour/ardour-mime-info.xml %{buildroot}%{_datadir}/mime/packages/%{name}.xml # install appdata file mkdir -p %{buildroot}%{_datadir}/appdata/ install -p -m 0644 build/gtk2_ardour/%{name}.appdata.xml %{buildroot}%{_datadir}/appdata/%{name}.appdata.xml %find_lang %{name} %find_lang gtk2_%{name} %find_lang gtkmm2ext3 # Collect non-locale data files and (all) directories find %{buildroot}%{_datadir}/%{name} | \ sed 's|^%{buildroot}||g' | \ while read f; do # *sigh* if [ "$f" = "${f/ /}" ]; then _f="$f" else _f="\"${f}\"" fi if [ -d "%{buildroot}${f}" ]; then echo "%%dir ${_f}" else if [ "${f}" = "${f#%{_datadir}/%{name}/locale}" ]; then echo "${_f}" fi fi done > %{name}-datafiles.list %if %{with tests} %check WAFTPATH="$PWD/doc/waft" pushd libs/ardour sh "$WAFTPATH" --targets=libardour-tests && ./run-tests.sh popd # check appdata file appstream-util validate-relax --nonet %{buildroot}/%{_datadir}/appdata/%{name}.appdata.xml %endif rm -f %{buildroot}%{_bindir}/run-tests %post /bin/touch --no-create %{_datadir}/icons/hicolor &> /dev/null || : /bin/touch --no-create %{_datadir}/mime/packages &> /dev/null || : /usr/bin/update-desktop-database &> /dev/null || : %postun /usr/bin/update-desktop-database &> /dev/null || : if [ $1 -eq 0 ] ; then /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null /bin/touch --no-create %{_datadir}/mime/packages &>/dev/null /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : fi %posttrans /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : /usr/bin/update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || : %files -f %{name}.lang -f gtk2_%{name}.lang -f gtkmm2ext3.lang -f %{name}-datafiles.list %license COPYING gpl-3.0.txt LICENSING %{_bindir}/%{name} %{_bindir}/%{name}-copy-mixer %{_bindir}/%{name}-export %{_bindir}/%{name}-lua %{_bindir}/%{name}-fix_bbtppq %config(noreplace) %{_sysconfdir}/%{name} %{_libdir}/%{name} %exclude %{_libdir}/%{name}/backends/* %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_datadir}/applications/%{name}.desktop %{_datadir}/mime/packages/%{name}.xml %{_datadir}/appdata/%{name}.appdata.xml %{_mandir}/man1/%{name}.1* %{_mandir}/*/man1/%{name}.1* %changelog * Wed Sep 27 2017 Guido Aulisi - 5.12.0-2 - Fix stretch Mode crashes ardour5 (#1494796) * Tue Sep 19 2017 Nils Philippsen - 5.12.0-1 - version 5.12.0 - enable push2 support * Sat Sep 16 2017 Guido Aulisi - 5.11.0-5 - Use the compiler default standard * Thu Aug 24 2017 Guido Aulisi - 5.11.0-4 - New internal widgets library * Thu Aug 24 2017 Guido Aulisi - 5.11.0-3 - New internal waveview library - Explicit BR for python2 * Wed Aug 23 2017 Guido Aulisi - 5.11.0-2 - Fix FTBFS: HUGE macro is undefined * Tue Aug 22 2017 Guido Aulisi - 5.11.0-1 - Version 5.11.0 * Wed Aug 02 2017 Fedora Release Engineering - 5.10.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 5.10.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Jun 16 2017 Guido Aulisi - 5.10.0-1 - Version 5.10.0 * Fri May 19 2017 Guido Aulisi - 5.9.0-1 - Version 5.9 * Mon May 15 2017 Fedora Release Engineering - 5.8.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild * Thu Mar 09 2017 Nils Philippsen - 5.8.0-1 - version 5.8.0 * Thu Mar 09 2017 Nils Philippsen - 5.6.0-1 - version 5.6.0 * Fri Feb 10 2017 Fedora Release Engineering - 5.5.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Thu Jan 12 2017 Igor Gnatenko - 5.5.0-2 - Rebuild for readline 7.x * Fri Dec 09 2016 Nils Philippsen - 5.5.0-1 - version 5.5.0 * Wed Nov 09 2016 Nils Philippsen - 5.4.0-4 - fix version of bundled LuaBridge * Tue Nov 08 2016 Nils Philippsen - 5.4.0-3 - fix obsoleting ardour4 from Fedora 25 on * Thu Oct 06 2016 Nils Philippsen - 5.4.0-1 - version 5.4.0 - BR: libarchive-devel >= 3.0.0 - ship ardour5-fix_bbtppq tool * Thu Sep 01 2016 Nils Philippsen - 5.3.0-2 - obsolete ardour3, ardour4 from Fedora 23, 25 on * Mon Aug 29 2016 Nils Philippsen - 5.3.0-1 - version 5.3.0 * Fri Aug 26 2016 Nils Philippsen - 5.1.0-1 - version 5.1.0 - add BR: fluidsynth-devel * Wed Aug 17 2016 Nils Philippsen - 5.0.0-1 - import of ardour5 package into Fedora proper * Wed Aug 17 2016 Nils Philippsen - 5.0.0-0.8 - fix linking with unbundled qm-dsp * Tue Aug 16 2016 Nils Philippsen - 5.0.0-0.7 - unbundle qm-dsp - remove sources of unbundled libraries in %%prep * Sun Aug 14 2016 Nils Philippsen - 5.0.0-0.6 - update LICENSING - add bundled libraries provides * Sat Aug 13 2016 Nils Philippsen - 5.0.0-0.5 - AppData release tags need a date to be valid * Fri Aug 12 2016 Nils Philippsen - 5.0.0-0.5 - update licensing terms * Fri Aug 12 2016 Nils Philippsen - 5.0.0-0.4 - update to final release 5.0.0 - Ardour 5 is backwards-compatible to versions 3 and 4, obsolete them from Fedora 26 on - use %%autosetup - remove RPM group tags * Wed Aug 10 2016 Nils Philippsen - 5.0-0.3.rc2.12 - update to 5.0 prerelease rc2.12 * Fri Aug 05 2016 Nils Philippsen - 5.0-0.2.rc1.46 - update to 5.0 prerelease rc1.46 * Wed Aug 03 2016 Nils Philippsen - 5.0-0.1.rc1.42 - update to 5.0 prerelease rc1.42 * Mon Aug 01 2016 Nils Philippsen - 4.7.0-3 - update conditionals and fix building for EPEL (original patch by Phil Wyett) * Tue Mar 08 2016 Nils Philippsen - 4.7.0-2 - determine CPU features correctly on x86 (#1312551, patch by Florian Weimer) * Mon Feb 22 2016 Nils Philippsen - 4.7.0-1 - version 4.7.0 - cope with C++11 rint() - use %%define for %%backend_package() macro again (#1307325) - cope with missing nm command (#1289349) - ignore backup files of man pages * Wed Feb 03 2016 Fedora Release Engineering - 4.6.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Tue Jan 19 2016 Nils Philippsen - use %%global instead of %%define * Sat Jan 16 2016 Jonathan Wakely - 4.6.0-2 - Rebuilt for Boost 1.60 * Tue Jan 12 2016 Nils Philippsen - 4.6.0-1 - version 4.6.0 - distribute ardour4-export * Thu Nov 26 2015 Nils Philippsen - 4.4.0-2 - audio-backend-alsa subpackage is GPLv3+ - rebuild for aubio-0.4 * Thu Oct 22 2015 Nils Philippsen - 4.4.0-1 - fix crash when creating subgroup bus - don't deploy gcc-abi test tool - rename desktop files * Fri Oct 16 2015 Nils Philippsen - 4.4.0-1 - version 4.4.0 - build with --cxx11 from Fedora 23 on * Thu Aug 27 2015 Jonathan Wakely - 4.2.0-3 - Rebuilt for Boost 1.59 * Sat Aug 15 2015 Nils Philippsen - 4.2.0-2 - filter out dependency on new internal libptformat * Sat Aug 15 2015 Nils Philippsen - 4.2.0-1 - version 4.2.0 - use %%license tag for license files - recommend JACK as the default audio backend * Wed Jul 29 2015 Fedora Release Engineering - 4.1.0-3 - Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159 * Wed Jul 22 2015 David Tardon - 4.1.0-2 - rebuild for Boost 1.58 * Thu Jun 25 2015 Nils Philippsen - 4.1.0-1 - version 4.1.0 * Wed Jun 17 2015 Fedora Release Engineering - 4.0.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Sun May 03 2015 Nils Philippsen - 4.0.0-2 - move audio backends into their own subpackages * Fri May 01 2015 Nils Philippsen - 4.0.0-1 - don't install static library libsmf.a - symlink rather than hardlink application icons * Mon Apr 27 2015 Nils Philippsen - 4.0.0-0.2 - build alsa, dummy backends * Thu Apr 23 2015 Nils Philippsen - 4.0.0-0.1 - version 4.0.0