# glibmm needs --std=c++11 for F-23 and later %if !0%{?fedora}%{?rhel} || 0%{?fedora} >= 23 || 0%{?rhel} >= 8 %bcond_without cxx11 %else %bcond_with cxx11 %endif # 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 %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) %global __provides_exclude_from ^%{_libdir}/(%{name}|lv2)/.*$ %global __requires_exclude ^lib%{internal_libs_re}\.so.*$ # This package is named ardour4 to allow parallel installation with older versions of Ardour (2 and 3). Name: ardour4 Version: 4.7.0 Release: 8%{?dist} Summary: Digital Audio Workstation Group: Applications/Multimedia License: GPLv2+ 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 licenses used in some code files Source1: LICENSING # Fix man page encoding # https://github.com/nphilipp/ardour # commit ba7a27142faf34188b82fa4966ed1f9f8494ad9e # commit d53a2b7e20b61c6eb1fc980693bad4a618e09fd3 # https://github.com/Ardour/ardour/pull/196 Patch0: ardour4-4.6-man-encoding.patch # Cope with C++11 rint() # upstream commit 30497db8236f09b64e231db4c73da98d62148001 Patch1: ardour4-4.7-c++11-rint.patch # RHBZ#1289349 "ardour4 startup script needs nm command from binutils" # https://github.com/Ardour/ardour/pull/208 Patch2: ardour4-4.7-missing-nm.patch # RHBZ#1312551 "ardour4: _xgetbv(): ardour-4.6.387 killed by SIGILL" # https://github.com/Ardour/ardour/pull/218 # upstream commit 5a41b86028cd5068d8e74d7481dca60aefeff75d Patch3: ardour4-4.7-cpuid-x86.patch # Adjust to explicit operator bool in Glib::RefPtr<> # https://bugzilla.gnome.org/show_bug.cgi?id=769502 Patch4: ardour4-4.7-glibmm250.patch BuildRequires: alsa-lib-devel BuildRequires: aubio-devel >= 0.3.2 BuildRequires: bluez-libs-devel BuildRequires: boost-devel >= 1.39 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: fontconfig BuildRequires: gettext BuildRequires: glib2-devel >= 2.14.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: libcurl-devel >= 7.0.0 BuildRequires: libgnomecanvas-devel >= 2.30 BuildRequires: libgnomecanvasmm26-devel >= 2.16 BuildRequires: liblo-devel >= 0.24 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: libuuid-devel BuildRequires: libX11-devel >= 1.1 BuildRequires: libxml2-devel BuildRequires: lilv-devel >= 0.14.0 BuildRequires: lv2-devel >= 1.0.0 BuildRequires: python 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.4 BuildRequires: vamp-plugin-sdk-devel 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 %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}\ Group: Applications/Multimedia\ Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}\ Provides: %{name}-%{1}backend%{?_isa}\ %{?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 # zita-alsa-pcmi.[ch] is GPLv3+ %backend_package audio ALSA GPLv3+ %backend_package audio JACK %backend_package audio Dummy %prep %setup -q -n Ardour-%{version} %patch0 -p1 -b .man-encoding %patch1 -p1 -b .c++11-rint %patch2 -p1 -b .missing-nm %patch3 -p1 -b .cpuid-x86 %patch4 -p1 -b .glibmm250 # 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} . %build export LC_ALL=en_US.UTF-8 ./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 --use-external-libs \ %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}/icons/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 LICENSING %{_bindir}/%{name} %{_bindir}/%{name}-export %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 Aug 02 2017 Fedora Release Engineering - 4.7.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 4.7.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Feb 10 2017 Fedora Release Engineering - 4.7.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Tue Jan 31 2017 Jonathan Wakely - 4.7.0-5 - Rebuilt for Boost 1.63 and patch for glibmm 2.50.x * Wed Aug 03 2016 Nils Philippsen - 4.7.0-4 - fix broken use of conditional macros * 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