commit 92e3c790c532fb0c87a8fced7bf80f1a46b1ca3e
Author: Leigh Scott <leigh123linux(a)gmail.com>
Date: Thu Oct 22 16:32:11 2020 +0100
Update to Audacity 2.4.2
.gitignore | 1 +
Fix-gcc-10-compile-issue.patch | 42 -------
audacity-2.0.6-non-dl-ffmpeg.patch | 10 --
audacity-2.2.1-libmp3lame-default.patch | 11 --
...ding-against-the-system-portaudio-library.patch | 53 ++++++++
audacity-2.3.3-appdata.patch | 12 --
audacity-2.3.3-libdir.patch | 15 ---
audacity-2.4.2-fix-libmp3lame-as-system.patch | 16 +++
audacity-2.4.2-fix-portmidi-as-system.patch | 14 +++
audacity-2.4.2-provide-missed-RevisionIdent.patch | 7 ++
audacity-freeworld.spec | 138 ++++++---------------
sources | 2 +-
12 files changed, 133 insertions(+), 188 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 964bc38..7e098c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/audacity-minsrc-2.3.3.tar.xz
+/audacity-minsrc-2.4.2.tar.xz
diff --git a/audacity-2.3.3-Fix-building-against-the-system-portaudio-library.patch
b/audacity-2.3.3-Fix-building-against-the-system-portaudio-library.patch
new file mode 100644
index 0000000..ede8e0d
--- /dev/null
+++ b/audacity-2.3.3-Fix-building-against-the-system-portaudio-library.patch
@@ -0,0 +1,53 @@
+Subject: [PATCH] Fix building against the system portaudio library
+
+Building against the system portaudio results in this error:
+
+./src/AudioIO.cpp:983: undefined reference to `PaUtil_GetTime'
+audacity-AudioIO.o: In function `audacityAudioCallback(void const*, void*,
+unsigned long, PaStreamCallbackTimeInfo const*, unsigned long, void*)':
+./src/AudioIO.cpp:4630: undefined reference to `PaUtil_GetTime'
+collect2: error: ld returned 1 exit status
+Makefile:2349: recipe for target 'audacity' failed
+make[3]: *** [audacity] Error 1
+
+This is because PaUtil_GetTime is declared as a C symbol in pa_util.h
+but is resolved as a C++ symbol at link time.
+
+Audacity fixes this in the local tree with this change:
+https://github.com/audacity/audacity/commit/38fd97b8e26060332ab3e9e000a8882326a70ba7
+
+However this is not general enough for the portaudio debian package.
+
+Since PaUtil_GetTime() is the only function causing problems, just copy
+over the code where it's used.
+---
+ src/AudioIO.cpp | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+--- audacity-minsrc-2.3.3/src/AudioIO.cpp.orig 2019-11-25 18:57:25.820000000 +0100
++++ audacity-minsrc-2.3.3/src/AudioIO.cpp 2019-11-25 18:59:07.160000000 +0100
+@@ -480,8 +480,23 @@
+ #define ROUND(x) (int) ((x)+0.5)
+ //#include <string.h>
+ // #include "../lib-src/portmidi/pm_common/portmidi.h"
+- #include "../lib-src/portaudio-v19/src/common/pa_util.h"
+ #include "NoteTrack.h"
++ #include <sys/time.h>
++ PaTime PaUtil_GetTime( void )
++ {
++ #ifdef HAVE_MACH_ABSOLUTE_TIME
++ return mach_absolute_time() * machSecondsConversionScaler_;
++ #elif defined(HAVE_CLOCK_GETTIME)
++ struct timespec tp;
++ clock_gettime(CLOCK_REALTIME, &tp);
++ return (PaTime)(tp.tv_sec + tp.tv_nsec * 1e-9);
++ #else
++ struct timeval tv;
++ gettimeofday( &tv, NULL );
++ return (PaTime) tv.tv_usec * 1e-6 + tv.tv_sec;
++ #endif
++ }
++
+ #endif
+
+ #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT
diff --git a/audacity-2.4.2-fix-libmp3lame-as-system.patch
b/audacity-2.4.2-fix-libmp3lame-as-system.patch
new file mode 100644
index 0000000..51e367d
--- /dev/null
+++ b/audacity-2.4.2-fix-libmp3lame-as-system.patch
@@ -0,0 +1,16 @@
+5diff -up audacity-minsrc-2.4.2/lame.pc.pkgconfig audacity-minsrc-2.4.2/lame.pc
+--- audacity-minsrc-2.4.2/lame.pc.pkgconfig 2020-06-30 12:56:27.217655068 +0200
++++ audacity-minsrc-2.4.2/lame.pc 2020-06-30 12:56:27.216655059 +0200
+@@ -0,0 +1,12 @@
++prefix=/usr
++exec_prefix=/usr
++libdir=${exec_prefix}/lib64
++includedir=${prefix}/include/lame
++
++Name: lame
++Description: High quality MPEG Audio Layer III (MP3) encoder
++URL:
http://lame.sourceforge.net
++Version: 3.100
++Libs: -L${libdir} -lmp3lame
++Libs.private: -lm
++Cflags: -I${includedir}
diff --git a/audacity-2.4.2-fix-portmidi-as-system.patch
b/audacity-2.4.2-fix-portmidi-as-system.patch
new file mode 100644
index 0000000..a9dc286
--- /dev/null
+++ b/audacity-2.4.2-fix-portmidi-as-system.patch
@@ -0,0 +1,14 @@
+--- audacity-minsrc-2.4.2/portmidi.pc.pkgconfig
++++ audacity-minsrc-2.4.2/portmidi.pc
+@@ -0,0 +1,11 @@
++prefix=/usr
++exec_prefix=/usr
++libdir=${exec_prefix}/lib64
++includedir=${prefix}/include
++
++Name: portmidi
++Description: Portmedia PortMidi library
++Requires:
++Version: 0.1
++Libs: -L${libdir} -lportmidi
++Cflags: -I${includedir}
diff --git a/audacity-2.4.2-provide-missed-RevisionIdent.patch
b/audacity-2.4.2-provide-missed-RevisionIdent.patch
new file mode 100644
index 0000000..81f53b7
--- /dev/null
+++ b/audacity-2.4.2-provide-missed-RevisionIdent.patch
@@ -0,0 +1,7 @@
+diff -up audacity-minsrc-2.4.2/src/RevisionIdent.h.missed
audacity-minsrc-2.4.2/src/RevisionIdent.h
+--- audacity-minsrc-2.4.2/src/RevisionIdent.h.missed 2020-06-30 03:05:23.094201740 +0200
++++ audacity-minsrc-2.4.2/src/RevisionIdent.h 2020-06-30 03:04:02.300641780 +0200
+@@ -0,0 +1,3 @@
++#define REV_LONG "16d52f63a4183bba77ef7305d14622958dc0d1d5"
++#define REV_TIME "Fri Jun 19 16:16:47 2020 +0100"
++
diff --git a/audacity-freeworld.spec b/audacity-freeworld.spec
index bee7d4a..94f96af 100644
--- a/audacity-freeworld.spec
+++ b/audacity-freeworld.spec
@@ -8,8 +8,8 @@
Name: audacity-freeworld
-Version: 2.3.3
-Release: 5%{?dist}
+Version: 2.4.2
+Release: 1%{?dist}
Summary: Multitrack audio editor
License: GPLv2
URL:
https://www.audacityteam.org
@@ -27,33 +27,33 @@ Source0:
http://www.fosshub.com/Audacity.html/%{realname}-minsrc-%{version}.tar.
# manual can be installed from the base Fedora Audacity package.
-Patch1: audacity-2.2.1-libmp3lame-default.patch
-Patch2: audacity-2.3.3-libdir.patch
# add audio/x-flac (bug #557335)
# remove audio/mpeg, audio/x-mp3
# add categories Sequencer X-Jack AudioVideoEditing for F-12 Studio feature
# Add GDK_BACKEND=x11 to exec line (bug #1798987)
-Patch3: audacity-2.3.3-desktop.in.patch
-Patch4: audacity-2.0.6-non-dl-ffmpeg.patch
-# Based on
https://github.com/audacity/audacity/commit/bd6ec9c0ed9fe94ae2f6e171969ae...
-Patch5: Fix-gcc-10-compile-issue.patch
-# Fix launchable type in the appdata file (BZ #1810509)
-# This has been fixed by upstream in version 2.4.2
-Patch6: audacity-2.3.3-appdata.patch
-
+Patch0: audacity-2.3.3-desktop.in.patch
+#fix build with system portaudio
+Patch1: audacity-2.3.3-Fix-building-against-the-system-portaudio-library.patch
+# add missed revision ident (to be derived from git)
+# use:
+# cd src; git show -s --format="#define REV_LONG \"%H\"%n#define REV_TIME
\"%cd\"%n" | tee ../src/RevisionIdent.h
+Patch2: audacity-2.4.2-provide-missed-RevisionIdent.patch
+# Fix libmp3lame detection from cmake
+Patch3: audacity-2.4.2-fix-libmp3lame-as-system.patch
+# Fix portmidi detection from cmake
+Patch4: audacity-2.4.2-fix-portmidi-as-system.patch
Provides: audacity-nonfree = %{version}-%{release}
Obsoletes: audacity-nonfree < %{version}-%{release}
-BuildRequires: automake
-BuildRequires: autoconf
+BuildRequires: cmake3
BuildRequires: gettext-devel
%if 0%{?rhel} == 7
BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel
%endif
BuildRequires: gcc
BuildRequires: gcc-c++
-BuildRequires: libtool
+BuildRequires: ninja-build
BuildRequires: alsa-lib-devel
BuildRequires: desktop-file-utils
BuildRequires: expat-devel
@@ -65,14 +65,11 @@ BuildRequires: lame-devel
BuildRequires: libid3tag-devel
BuildRequires: libmad-devel
BuildRequires: taglib-devel
-%if 0%{?rhel} && 0%{?rhel} == 8
-#note: epel-8 currently doesn't have twolame-devel.
-%else
BuildRequires: twolame-devel
-%endif
BuildRequires: libogg-devel
BuildRequires: libsndfile-devel
BuildRequires: libvorbis-devel
+BuildRequires: lilv-devel
#checking for LV2... no
#configure: LV2 libraries are NOT available as system libraries
#fresh check for system libraries:
@@ -83,15 +80,17 @@ BuildRequires: portaudio-devel >= 19-16
#checking for PORTMIDI... no
#configure: portmidi library is NOT available as system library
BuildRequires: portmidi-devel
+BuildRequires: python3
+BuildRequires: serd-devel
+BuildRequires: sord-devel
BuildRequires: soundtouch-devel
BuildRequires: soxr-devel
+BuildRequires: sratom-devel
+BuildRequires: suil-devel
BuildRequires: vamp-plugin-sdk-devel >= 2.0
BuildRequires: zip
BuildRequires: zlib-devel
BuildRequires: python2
-#BuildRequires: wxGTK3-devel
-# But we will actually use the --toolkit=gtk2 version using --with-wx-version
-#BuildRequires: compat-wxGTK3-gtk2-devel
BuildRequires: wxGTK3-devel
%if 0%{?rhel} >= 8 || 0%{?fedora}
BuildRequires: libappstream-glib
@@ -116,101 +115,43 @@ This build has support for mp3 and ffmpeg import/export.
%prep
%setup -q -n %{tartopdir}
-# Substitute hardcoded library paths.
-%patch1 -p1 -b .libmp3lame-default
-%patch2 -p1 -b .libdir
-grep -s __RPM_LIB * -R && exit 1
-
-# Substitute occurences of "libmp3lame.so" with "libmp3lame.so.0".
-for i in locale/*.po src/export/ExportMP3.cpp
-do
- sed -i -e 's!libmp3lame.so\([^.]\)!libmp3lame.so.0\1!g' $i
-done
-grep -q -s libmp3lame.so\| * -R && exit 1
-
-%patch3 -b .desktop
-%patch4 -p1 -b .non-dl-ffmpeg
-%patch5 -p1 -b .gcc10
-%patch6 -b .appdata
+%patch0 -b .desktop
+%patch1 -p1 -b .system-portaudio
+%patch2 -p1 -b .revision-ident
+%patch3 -p1 -b .pkgconfig
+%patch4 -p1 -b .pkgconfig
%build
-%if (0%{?fedora} && 0%{?fedora} < 28)
-export WX_CONFIG=wx-config-3.0-gtk2
-%endif
%if 0%{?rhel} == 7
export WX_CONFIG=wx-config-3.0
%endif
-%if %{with ffmpeg} && %{with compat_ffmpeg}
-export PKG_CONFIG_PATH=%{_libdir}/compat-ffmpeg28/pkgconfig
-%endif
-
%if 0%{?rhel} == 7
. /opt/rh/devtoolset-7/enable
%endif
-aclocal -I m4
-autoconf
+# fix system lame detection
+export PKG_CONFIG_PATH=$(pwd):$PKG_CONFIG_PATH
-%configure \
- --disable-dynamic-loading \
- --with-help \
-%if (0%{?fedora} && 0%{?fedora} < 28)
- --with-wx-version=3.0-gtk2 \
-%endif
- --with-libsndfile=system \
- --with-libsoxr=system \
- --without-libresample \
- --without-libsamplerate \
- --with-lame=system \
- --with-libmad=system \
-%if 0%{?rhel} == 8
- --without-libtwolame \
-%else
- --with-libtwolame=system \
-%endif
- --with-libflac=system \
- --with-ladspa \
- --with-vorbis=system \
- --with-libid3tag=system \
- --with-expat=system \
- --with-soundtouch=system \
- --with-libvamp=system \
- --with-lv2 \
- --with-portaudio=local \
- --with-midi \
- --with-portmidi \
+%cmake3 -GNinja \
%if %{with ffmpeg}
%if ! %{with local_ffmpeg}
- --with-ffmpeg=system \
+ -Daudacity_use_ffmpeg=linked \
%endif
%else
- --without-ffmpeg \
+ -Daudacity_use_ffmpeg=off \
%endif
%ifnarch %{ix86} x86_64
- --disable-sse \
-%else
- %{nil}
+ -DHAVE_SSE=OFF \
+ -DHAVE_SSE2=OFF \
%endif
-# portaudio use local:
http://rglinuxtech.com/?p=2093
-#--enable-shared --with-ffmpeg --with-lame --with-libflac --with-libid3tag --with-libmad
--with-libtwolame
-#--with-libvorbis --with-lv2 --with-portaudio=local --with-midi --with-portmidi
-
-# ensure we use the system headers for these, note we do this after
-# configure as it wants to run sub-configures in these dirs
-#in ffmpeg FileDialog lame libnyquist libsndfile libsoxr libvamp lv2 portburn portmidi
portmixer portsmf sbsms twolame; do
-for i in %{!?with_local_ffmpeg:ffmpeg} lame libsndfile libsoxr libvamp twolame; do
- rm -r lib-src/$i
-done
-
-%make_build
+%cmake3_build
%install
-%make_install
-rm -Rf $RPM_BUILD_ROOT%{_datadir}/%{realname}/include
+%cmake3_install
%if 0%{?rhel} >= 8 || 0%{?fedora}
if appstream-util --help | grep -q replace-screenshots ; then
@@ -228,9 +169,6 @@ fi
%{find_lang} %{realname}
desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications \
-%if 0%{?fedora} && 0%{?fedora} < 19
- --vendor fedora --delete-original \
-%endif
$RPM_BUILD_ROOT%{_datadir}/applications/audacity.desktop
mkdir %{buildroot}%{_datadir}/doc/%{realname}/nyquist
@@ -238,10 +176,12 @@ cp -pr lib-src/libnyquist/nyquist/license.txt
%{buildroot}%{_datadir}/doc/%{real
cp -pr lib-src/libnyquist/nyquist/Readme.txt
%{buildroot}%{_datadir}/doc/%{realname}/nyquist
rm %{buildroot}%{_datadir}/doc/%{realname}/LICENSE.txt
+
%files -f %{realname}.lang
%{_bindir}/%{realname}
%dir %{_datadir}/%{realname}
%{_datadir}/%{realname}/EQDefaultCurves.xml
+%{_datadir}/%{realname}/modules/
%{_datadir}/%{realname}/nyquist/
%{_datadir}/%{realname}/plug-ins/
%{_mandir}/man*/*
@@ -249,12 +189,16 @@ rm %{buildroot}%{_datadir}/doc/%{realname}/LICENSE.txt
%{_datadir}/appdata/%{realname}.appdata.xml
%{_datadir}/pixmaps/*
%{_datadir}/icons/hicolor/*/apps/%{realname}.*
+%{_datadir}/icons/hicolor/*/%{realname}.*
%{_datadir}/mime/packages/*
%{_datadir}/doc/%{realname}
%license LICENSE.txt
%changelog
+* Wed Oct 21 2020 Leigh Scott <leigh123linux(a)gmail.com> - 2.4.2-1
+- Update to Audacity 2.4.2
+
* Wed Sep 02 2020 Leigh Scott <leigh123linux(a)gmail.com> - 2.3.3-5
- Add GDK_BACKEND=x11 to audacity.desktop exec line (rfbz#5551)
- Fix incorrect appdata.xml type tag (bug #1810509)
diff --git a/sources b/sources
index 163c219..965bd47 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (audacity-minsrc-2.3.3.tar.xz) =
4be5f766e9d68d71e83bb1c972dc0390da3736228a5d4af514913aec103a0b4bc9858e77b0377681ae9137ab92596bcedc93221a71c32876e4838d00d5681806
+SHA512 (audacity-minsrc-2.4.2.tar.xz) =
0fcbb2d9e131b3d683b3f0b0d16f565f034d46e57dab1749c52fc8e72f2bc8c64606fd749ed13d925aecef31f38258ad8b79f8e1baa23c99c7b805686e5445b4