Blob Blame History Raw
Summary:       Digital Audio Workstation
Name:          ardour2
Version:       2.8.16
Release:       27%{?dist}
# No more direct links. Download from
# http://ardour.org/download
Source:        ardour-%{version}.tar.bz2
Source2:       ardour.sh
Patch0:        ardour-SConscript.patch
# Colored grep output makes the script print errors:
Patch1:        ardour-no-grep-options.patch
Patch3:        ardour-2.5-HOST_NOT_FOUND.patch
# Filed upstream: http://tracker.ardour.org/view.php?id=5476
Patch4:        ardour-fix-mm-includes.patch
# lilv-0.16 compatibility. Fixed in trunk
Patch5:        ardour-lilv016fix.patch
# Need to link various plugins against boost (rhbz#1156179)
Patch6:        0001-Add-boost-linking-to-tranzport-and-generic-midi-surf.patch
Patch7:        0002-Add-boost-linking-to-wiimote.patch
# C++11 needs this
Patch8:        ardour-2.8.16-c++11-namespaces.patch
Patch9:        ardour-2.8.16-c++11-xpm.patch
Patch10:       ardour-2.8.16-c++11-bool-from-pointer.patch
# libsigc++ >= 2.6 needs this
Patch11:       ardour-2.8.16-libsigc++26.patch
# aubio >= 0.4.0 needs this
Patch12:       ardour-2.8.16-aubio04.patch
# include a freely licensed version of dmalloc.c
# this code is not actually used, but eh.
# Taken from http://dmalloc.com/releases/ v5.5.2
Patch13:       ardour-2.8.16-free-dmalloc.patch
# fix to compile with gcc6
# There are almost certainly other cleanups that could be made here
# but this code is legacy, so just get it building again.
Patch14:       ardour-2.8.16-gcc6.patch
# Fix to compile with glibmm 2.50.x
Patch15:       ardour-2.8.16-glibmm250.patch
# Fix to compile with gcc7
Patch16:       ardour-2.8.16-gcc7.patch
URL:           http://ardour.org
License:       GPLv2+
Group:         Applications/Multimedia

BuildRequires: alsa-lib-devel
BuildRequires: aubio-devel
BuildRequires: boost-devel
BuildRequires: cwiid-devel
BuildRequires: desktop-file-utils
BuildRequires: fftw-devel
BuildRequires: gettext >= 0.11.5
BuildRequires: gtkmm24-devel >= 2.8
BuildRequires: jack-audio-connection-kit-devel
BuildRequires: libcurl-devel
BuildRequires: libgnomecanvas-devel
BuildRequires: libgnomecanvasmm26-devel >= 2.12
BuildRequires: liblo-devel
BuildRequires: liblrdf-devel >= 0.3.1
BuildRequires: libsamplerate-devel >= 0.0.13
BuildRequires: libsndfile-devel >= 1.0.18
BuildRequires: libtool
BuildRequires: libusb-devel
BuildRequires: libxslt-devel
BuildRequires: lilv-devel
BuildRequires: pkgconfig
BuildRequires: scons
BuildRequires: soundtouch-devel
BuildRequires: suil-devel
# For up2date config.guess for new architectures (ie aarch64) support
BuildRequires: redhat-rpm-config

Requires: hicolor-icon-theme

Obsoletes: ardour < 2.8.16-16

%description
This package contains the legacy version 2 of Ardour. It is provided as a way
to work on sessions created by this version. Please use the current version of
Ardour for new projects.

Ardour is a multichannel hard disk recorder (HDR) and digital audio workstation
(DAW). It is capable of simultaneously recording 24 or more channels of 32 bit
audio at 48kHz.

%prep
%setup -q -n ardour-%{version}
%patch0 -p1 -b .SConscript
%patch1 -p1 -b .no.grep.opts
%patch3 -p0 -b .host.not.found
%patch4 -p1 -b .fix-mm-includes
%patch5 -p1 -b .lilv016
%patch6 -p1 -b .boost-tranzport-generic-midi
%patch7 -p1 -b .boost-linking-wiimote
%patch8 -p1 -b .c++11-namespaces
%patch9 -p1 -b .c++11-xpm
%patch10 -p1 -b .c++11-bool-from-pointer
%patch11 -p1 -b .libsigc++26
%patch12 -p1 -b .aubio04
%patch13 -p1 -b .free-dmalloc
%patch14 -p1 -b .gcc6
%patch15 -p1 -b .glibmm250
%patch16 -p1 -b .gcc7

# Update config.guess for new architectures (ie aarch64) support
cp /usr/lib/rpm/redhat/config.guess tools

# Fix encodings:
iconv -f ISO-8859-1 -t UTF8 ardour.1.fr > ardour.1.fr.tmp
touch -r ardour.1.fr ardour.1.fr.tmp
mv -f ardour.1.fr.tmp ardour.1.fr
iconv -f KOI8-R     -t UTF8 ardour.1.ru > ardour.1.ru.tmp
touch -r ardour.1.ru ardour.1.ru.tmp
mv -f ardour.1.ru.tmp ardour.1.ru

%build
echo "GenericName=Digital Audio Workstation" >> gtk2_ardour/ardour2.desktop.in
# <sigh> ardours SConstruct script is a mess when it comes to determining
# opt_flags, so we override the lot using the ARCH= and DIST_TARGET= options

TARGETCPU="none"

%ifarch %{ix86}
ARCH_FLAGS="-DARCH_X86 -DBUILD_SSE_OPTIMIZATIONS -msse -mfpmath=sse -DUSE_XMMINTRIN"
TARGETCPU="i386"
%endif
%ifarch x86_64
ARCH_FLAGS="-DARCH_X86 -DBUILD_SSE_OPTIMIZATIONS -DUSE_X86_64_ASM -msse -mfpmath=sse -DUSE_XMMINTRIN"
TARGETCPU="x86_64"
%endif

# Parallel build fails
scons PREFIX=%{_prefix} LIBDIR=%{_lib} SYSLIBS=1 \
      FREESOUND=1 \
      DIST_TARGET="${TARGETCPU}" \
      ARCH="$RPM_OPT_FLAGS $ARCH_FLAGS -std=c++11" \
      AUSTATE=1 \
      DIST_LIBDIR=%{_lib} \
      WIIMOTE=1

%install
scons DESTDIR=$RPM_BUILD_ROOT install

# Current Ardour versions have their own appdata file:
# https://github.com/Ardour/ardour/pull/158
mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
cat > $RPM_BUILD_ROOT%{_datadir}/appdata/ardour2.appdata.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2014 Richard Hughes <richard@hughsie.com> -->
<application>
  <id type="desktop">ardour2.desktop</id>
  <metadata_license>CC0-1.0</metadata_license>
  <summary>Digital Audio Workstation (Legacy Version)</summary>
  <description>
    <p>
      This package contains the legacy version 2 of Ardour. It is provided as a
      way to work on sessions created by this version. Please use the current
      version of Ardour for new projects.
    </p>
    <p>
      Ardour is a digital audio workstation that permits you to record and
      create music.
      Ardour supports multi-track recording, and allows you to use plug-ins to
      create music in a virtual studio.
    </p>
  </description>
  <url type="homepage">http://ardour.org</url>
  <screenshots>
    <screenshot type="default">http://ardour.org/images/lsdedits.png</screenshot>
    <screenshot>http://ardour.org/images/eno.png</screenshot>
    <screenshot>http://ardour.org/images/lsd-mixer.jpg</screenshot>
  </screenshots>
  <updatecontact>ardour-users@lists.ardour.org</updatecontact>
</application>
EOF

# Replace ardour2 with a script
install -dm 755 $RPM_BUILD_ROOT%{_libexecdir}
mv $RPM_BUILD_ROOT%{_bindir}/ardour2 $RPM_BUILD_ROOT%{_libexecdir}
install -pm 755 %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/ardour2

# copy icons to freedesktop locations
for s in 16 22 32 48 ; do
    mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps
    cp -p $RPM_BUILD_ROOT%{_datadir}/ardour2/icons/ardour_icon_${s}px.png \
       $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/ardour2.png
done

# install the desktop entry
cp -dpf gtk2_ardour/ardour2.desktop{.in,}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
desktop-file-install --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \
  gtk2_ardour/ardour2.desktop

# install mime entry
mkdir -p $RPM_BUILD_ROOT%{_datadir}/mime/packages/
install -p -m 0644 gtk2_ardour/ardour2.xml $RPM_BUILD_ROOT%{_datadir}/mime/packages/

# install the man pages
install -dm 755 $RPM_BUILD_ROOT%{_mandir}/man1/
install -p -m 0644 ardour.1 $RPM_BUILD_ROOT%{_mandir}/man1/ardour2.1
for lang in es fr ru ; do
  install -dm 755 $RPM_BUILD_ROOT%{_mandir}/${lang}/man1/
  install -p -m 0644 ardour.1.${lang} $RPM_BUILD_ROOT%{_mandir}/${lang}/man1/ardour2.1
done

%find_lang gtk2_ardour
cat gtk2_ardour.lang > ardour.lang
%find_lang libardour2
cat libardour2.lang >> ardour.lang
%find_lang libgtkmm2ext
cat libgtkmm2ext.lang >> ardour.lang

%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 ardour.lang
%license COPYING
%doc README
%config(noreplace) %{_sysconfdir}/ardour2
%{_bindir}/ardour2
%{_libexecdir}/ardour2
%{_libdir}/ardour2/
%{_datadir}/ardour2/
%{_datadir}/icons/hicolor/*/apps/ardour2.png
%{_datadir}/appdata/*.appdata.xml
%{_datadir}/applications/ardour2.desktop
%{_datadir}/mime/packages/ardour2.xml
%{_mandir}/man1/ardour2.1*
%{_mandir}/es/man1/ardour2.1*
%{_mandir}/fr/man1/ardour2.1*
%{_mandir}/ru/man1/ardour2.1*

%changelog
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.16-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.16-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon May 15 2017 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.16-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_27_Mass_Rebuild

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.16-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Tue Jan 31 2017 Jonathan Wakely <jwakely@redhat.com> - 2.8.16-23
- Rebuilt for Boost 1.63 and patched for glibmm 2.50.x and GCC 7

* Tue Mar  8 2016 Tom Callaway <spot@fedoraproject.org> - 2.8.16-22
- replace non-free dmalloc.cc with a freely licensed version (bz1313285)
- fix FTBFS with gcc6 (bz1307324)

* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.16-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Sat Jan 16 2016 Jonathan Wakely <jwakely@redhat.com> - 2.8.16-20
- Rebuilt for Boost 1.60

* Sun Nov 29 2015 Nils Philippsen <nils@redhat.com> - 2.8.16-19
- patch for and build with -std=c++11
- patch for libsigc++20 >= 2.6
- patch for aubio >= 0.4.0
- mention legacy version in appdata file
- miscellaneous fixes

* Thu Aug 27 2015 Jonathan Wakely <jwakely@redhat.com> - 2.8.16-18
- Rebuilt for Boost 1.59

* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.16-17
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159

* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 2.8.16-16
- rebuild for Boost 1.58

* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.16-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild

* Thu Jun 11 2015 Nils Philippsen <nils@redhat.com> 2.8.16-14
- make release higher than ardour to break obsoletes loop (#1230469)

* Mon May 11 2015 Nils Philippsen <nils@redhat.com> 2.8.16-1
- rename ardour.script to ardour.sh to appease rpmlint
- trim description

* Fri May 08 2015 Nils Philippsen <nils@redhat.com> 2.8.16-1
- rename package to ardour2
- mention legacy status in %%changelog
- fix file names of man pages