Gentoo Archives: gentoo-commits

From: Lars Wendler <polynomial-c@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/audacity/, media-sound/audacity/files/
Date: Wed, 28 Aug 2019 07:44:56
Message-Id: 1566978283.e6b9364ffd66913edfbf0276653a7f881ca4bde6.polynomial-c@gentoo
1 commit: e6b9364ffd66913edfbf0276653a7f881ca4bde6
2 Author: Alexander Tsoy <alexander <AT> tsoy <DOT> me>
3 AuthorDate: Wed Aug 28 07:43:54 2019 +0000
4 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org>
5 CommitDate: Wed Aug 28 07:44:43 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e6b9364f
7
8 media-sound/audacity: Bump to version 2.3.2
9
10 Closes: https://bugs.gentoo.org/680028
11 Package-Manager: Portage-2.3.73, Repoman-2.3.17
12 Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org>
13
14 media-sound/audacity/Manifest | 2 +
15 media-sound/audacity/audacity-2.3.2.ebuild | 141 +++++++++++++++++++++
16 .../audacity-2.3.2-Fix-building-without-midi.patch | 71 +++++++++++
17 ...3.2-fix_building_against_system_portaudio.patch | 56 ++++++++
18 4 files changed, 270 insertions(+)
19
20 diff --git a/media-sound/audacity/Manifest b/media-sound/audacity/Manifest
21 index 907b27be528..252b82de0a3 100644
22 --- a/media-sound/audacity/Manifest
23 +++ b/media-sound/audacity/Manifest
24 @@ -1,2 +1,4 @@
25 +DIST Audacity-2.3.2.tar.gz 61972597 BLAKE2B 968c3d877392af92e2a23d8357fe65c3eb608122185d037e741ed6165d1acb3af70fc15dce63140eff14cd032fb3e3dc1b8b4f7bca9016f8e0e56aaef8a27802 SHA512 a59d6e9e974d5f78f5ca561e3bea31fc1b3e88f9ea60b2df7ce8bcec264d886f3fdc8f20030e11a86daff8ffeb735850b5e5f73c45fbef0bfcc58692423e7cd0
26 DIST audacity-manual-2.2.2.zip 13501474 BLAKE2B f0289f22dc4134b31f38d4acee3bda9f915829842030f8454cce1801377d177c32a7f35077673ce7db0a0f059a644d8146457e6a6377c5f6abc01c11da6a4f53 SHA512 a34ded796157d763fa024e0a235ecce7c67a68bcce86b487f8c022d45d8337fe550e40f56df4155a16293b974511d0bcf130cb086b3594bc0c42d9d0f84f1e86
27 +DIST audacity-manual-2.3.2.zip 21163508 BLAKE2B 6a0ec89567db63164e897aad21af6fb31557e2519640788c781b21e885c0f704174529d9abf3e8645ccb3bca0f7b987fa708b1ce64597b282357b823e8addd44 SHA512 5e541065236badfdc2331681e43dee2564f933c33a3a588806f189acc8d8285a2c60bf9bc0c7052c6cb23fa1ee29a9f5e0428540cd556901dcf896def1c7c0ac
28 DIST audacity-minsrc-2.2.2.tar.xz 8210700 BLAKE2B b887cff6994f2d5315b5d22b47d460a6b7c7b7af4f212585740a7534dc1345a8b3cda701a8541fabeef1aedf30cd336466798b2da4ef62ed010152540ee02d26 SHA512 8e52b4456a3a328a9933961746722ab5c545d17f7c05f3ae4aa83ba5d4f8323590ffa070de9462163362032b372aa48bc61fc96459e5565eec29a146b7a0351c
29
30 diff --git a/media-sound/audacity/audacity-2.3.2.ebuild b/media-sound/audacity/audacity-2.3.2.ebuild
31 new file mode 100644
32 index 00000000000..1f561978a5f
33 --- /dev/null
34 +++ b/media-sound/audacity/audacity-2.3.2.ebuild
35 @@ -0,0 +1,141 @@
36 +# Copyright 1999-2019 Gentoo Authors
37 +# Distributed under the terms of the GNU General Public License v2
38 +
39 +EAPI=7
40 +
41 +inherit flag-o-matic wxwidgets xdg
42 +
43 +MY_P="Audacity-${PV}"
44 +DOC_PV="${PV}"
45 +DESCRIPTION="Free crossplatform audio editor"
46 +HOMEPAGE="https://web.audacityteam.org/"
47 +# wget doesn't seem to work on FossHub links, so we mirror
48 +SRC_URI="https://github.com/audacity/audacity/archive/${MY_P}.tar.gz
49 + doc? ( https://dev.gentoo.org/~polynomial-c/dist/${PN}-manual-${DOC_PV}.zip )"
50 +
51 +LICENSE="GPL-2"
52 +SLOT="0"
53 +KEYWORDS="~amd64 ~mips ~x86"
54 +IUSE="alsa cpu_flags_x86_sse doc ffmpeg +flac id3tag jack +ladspa +lame libav
55 + +lv2 mad midi nls +portmixer sbsms +soundtouch twolame vamp +vorbis +vst"
56 +
57 +RESTRICT="test"
58 +
59 +RDEPEND=">=app-arch/zip-2.3
60 + dev-libs/expat
61 + >=media-libs/libsndfile-1.0.0
62 + >=media-libs/portaudio-19.06.00-r2[alsa?]
63 + <media-libs/portaudio-20
64 + media-libs/soxr
65 + x11-libs/wxGTK:3.0[X]
66 + alsa? ( media-libs/alsa-lib )
67 + ffmpeg? (
68 + libav? ( media-video/libav:= )
69 + !libav? ( >=media-video/ffmpeg-1.2:= )
70 + )
71 + flac? ( >=media-libs/flac-1.3.1[cxx] )
72 + id3tag? ( media-libs/libid3tag )
73 + jack? ( virtual/jack )
74 + lame? ( >=media-sound/lame-3.70 )
75 + lv2? (
76 + media-libs/lilv
77 + media-libs/lv2
78 + media-libs/suil
79 + )
80 + mad? ( >=media-libs/libmad-0.14.2b )
81 + sbsms? ( media-libs/libsbsms )
82 + soundtouch? ( >=media-libs/libsoundtouch-1.3.1 )
83 + twolame? ( media-sound/twolame )
84 + vamp? ( >=media-libs/vamp-plugin-sdk-2.0 )
85 + vorbis? ( >=media-libs/libvorbis-1.0 )
86 +"
87 +DEPEND="${RDEPEND}"
88 +BDEPEND="virtual/pkgconfig
89 + nls? ( sys-devel/gettext )
90 +"
91 +
92 +S="${WORKDIR}/${PN}-${MY_P}"
93 +
94 +PATCHES=(
95 + "${FILESDIR}"/${PN}-2.3.2-fix_building_against_system_portaudio.patch
96 + "${FILESDIR}"/${PN}-2.3.2-Fix-building-without-midi.patch
97 +)
98 +
99 +src_prepare() {
100 + default
101 +
102 + use midi || sed -i \
103 + -e 's:^\(#define EXPERIMENTAL_MIDI_OUT\):// \1:' \
104 + src/Experimental.h || die
105 +}
106 +
107 +src_configure() {
108 + local WX_GTK_VER="3.0"
109 + setup-wxwidgets
110 + append-cxxflags -std=gnu++14
111 +
112 + # * always use system libraries if possible
113 + # * options listed in the order that configure --help lists them
114 + local myeconfargs=(
115 + --disable-dynamic-loading
116 + --enable-nyquist=local
117 + --enable-unicode
118 + --with-expat
119 + --with-lib-preference=system
120 + --with-libsndfile
121 + --with-libsoxr
122 + --with-mod-script-pipe
123 + --with-mod-nyq-bench
124 + --with-portaudio
125 + --with-widgetextra=local
126 + --with-wx-version=${WX_GTK_VER}
127 + $(use_enable cpu_flags_x86_sse sse)
128 + $(use_enable ladspa)
129 + $(use_enable nls)
130 + $(use_enable vst)
131 + $(use_with ffmpeg)
132 + $(use_with flac libflac)
133 + $(use_with id3tag libid3tag)
134 + $(use_with lame)
135 + $(use_with lv2)
136 + $(use_with mad libmad)
137 + $(use_with midi portmidi local)
138 + $(use_with midi "" local)
139 + $(use_with portmixer)
140 + $(use_with sbsms)
141 + $(use_with soundtouch)
142 + $(use_with twolame libtwolame)
143 + $(use_with vamp libvamp)
144 + $(use_with vorbis libvorbis)
145 + )
146 + econf "${myeconfargs[@]}"
147 +}
148 +
149 +src_install() {
150 + emake DESTDIR="${D}" install
151 +
152 + # Remove bad doc install
153 + rm -r "${ED}"/usr/share/doc || die
154 +
155 + # Install our docs
156 + einstalldocs
157 +
158 + if use doc ; then
159 + docinto html
160 + dodoc -r "${WORKDIR}"/help/manual/{m,man,manual}
161 + dodoc "${WORKDIR}"/help/manual/{favicon.ico,index.html,quick_help.html}
162 + dosym ../../doc/${PF}/html /usr/share/${PN}/help/manual
163 + fi
164 +}
165 +
166 +pkg_preinst() {
167 + xdg_pkg_preinst
168 +}
169 +
170 +pkg_postinst() {
171 + xdg_pkg_postinst
172 +}
173 +
174 +pkg_postrm() {
175 + xdg_pkg_postrm
176 +}
177
178 diff --git a/media-sound/audacity/files/audacity-2.3.2-Fix-building-without-midi.patch b/media-sound/audacity/files/audacity-2.3.2-Fix-building-without-midi.patch
179 new file mode 100644
180 index 00000000000..d4ec1a7320f
181 --- /dev/null
182 +++ b/media-sound/audacity/files/audacity-2.3.2-Fix-building-without-midi.patch
183 @@ -0,0 +1,71 @@
184 +diff -urpN a/src/Track.h b/src/Track.h
185 +--- a/src/Track.h 2019-05-04 13:38:57.000000000 +0300
186 ++++ b/src/Track.h 2019-08-27 19:32:36.937551831 +0300
187 +@@ -53,10 +53,6 @@ using WaveTrackConstArray = std::vector
188 +
189 + using NoteTrackConstArray = std::vector < std::shared_ptr< const NoteTrack > >;
190 +
191 +-#if defined(USE_MIDI)
192 +-class NoteTrack;
193 +-#endif
194 +-
195 + class TrackList;
196 +
197 + using ListOfTracks = std::list< std::shared_ptr< Track > >;
198 +@@ -74,9 +70,7 @@ enum class TrackKind
199 + {
200 + None,
201 + Wave,
202 +-#if defined(USE_MIDI)
203 + Note,
204 +-#endif
205 + Label,
206 + Time,
207 + Audio,
208 +diff -urpN a/src/menus/FileMenus.cpp b/src/menus/FileMenus.cpp
209 +--- a/src/menus/FileMenus.cpp 2019-05-04 13:38:57.000000000 +0300
210 ++++ b/src/menus/FileMenus.cpp 2019-08-27 19:32:36.939551720 +0300
211 +@@ -141,8 +141,6 @@ AudacityProject *DoImportMIDI(
212 + }
213 + #endif
214 +
215 +-#ifdef USE_MIDI
216 +-
217 + // Menu handler functions
218 +
219 + struct Handler : CommandHandlerObject {
220 +@@ -480,6 +478,7 @@ void OnImportLabels(const CommandContext
221 + }
222 + }
223 +
224 ++#ifdef USE_MIDI
225 + void OnImportMIDI(const CommandContext &context)
226 + {
227 + auto &project = context.project;
228 +@@ -496,7 +495,7 @@ void OnImportMIDI(const CommandContext &
229 + if (!fileName.empty())
230 + DoImportMIDI(&project, fileName);
231 + }
232 +-#endif
233 ++#endif // USE_MIDI
234 +
235 + void OnImportRaw(const CommandContext &context)
236 + {
237 +diff -urpN a/src/tracks/ui/TimeShiftHandle.cpp b/src/tracks/ui/TimeShiftHandle.cpp
238 +--- a/src/tracks/ui/TimeShiftHandle.cpp 2019-05-04 13:38:57.000000000 +0300
239 ++++ b/src/tracks/ui/TimeShiftHandle.cpp 2019-08-27 19:32:36.940551665 +0300
240 +@@ -393,12 +393,12 @@ UIHandle::Result TimeShiftHandle::Click
241 + ok = false;
242 + else
243 + captureClips = true;
244 +- },
245 + #ifdef USE_MIDI
246 ++ },
247 + [&](NoteTrack *) {
248 + captureClips = true;
249 +- }
250 + #endif
251 ++ }
252 + );
253 +
254 + if ( ! ok )
255
256 diff --git a/media-sound/audacity/files/audacity-2.3.2-fix_building_against_system_portaudio.patch b/media-sound/audacity/files/audacity-2.3.2-fix_building_against_system_portaudio.patch
257 new file mode 100644
258 index 00000000000..fa785fdd6c5
259 --- /dev/null
260 +++ b/media-sound/audacity/files/audacity-2.3.2-fix_building_against_system_portaudio.patch
261 @@ -0,0 +1,56 @@
262 +From 5f9482a191359f2c477763a36d2c865c5f186602 Mon Sep 17 00:00:00 2001
263 +From: Antonio Ospite <ao2@×××.it>
264 +Date: Tue, 7 Nov 2017 13:06:33 +0100
265 +Subject: [PATCH] Fix building against the system portaudio library
266 +
267 +Building against the system portaudio results in this error:
268 +
269 +./src/AudioIO.cpp:983: undefined reference to `PaUtil_GetTime'
270 +audacity-AudioIO.o: In function `audacityAudioCallback(void const*, void*,
271 +unsigned long, PaStreamCallbackTimeInfo const*, unsigned long, void*)':
272 +./src/AudioIO.cpp:4630: undefined reference to `PaUtil_GetTime'
273 +collect2: error: ld returned 1 exit status
274 +Makefile:2349: recipe for target 'audacity' failed
275 +make[3]: *** [audacity] Error 1
276 +
277 +This is because PaUtil_GetTime is declared as a C symbol in pa_util.h
278 +but is resolved as a C++ symbol at link time.
279 +
280 +Audacity fixes this in the local tree with this change:
281 +https://github.com/audacity/audacity/commit/38fd97b8e26060332ab3e9e000a8882326a70ba7
282 +
283 +However this is not general enough for the portaudio debian package.
284 +
285 +Since PaUtil_GetTime() is the only function causing problems, just copy
286 +over the code where it's used.
287 +---
288 + src/AudioIO.cpp | 17 ++++++++++++++++-
289 + 1 file changed, 16 insertions(+), 1 deletion(-)
290 +
291 +--- a/src/AudioIO.cpp
292 ++++ b/src/AudioIO.cpp
293 +@@ -465,8 +465,23 @@ TimeTrack and AudioIOListener and whethe
294 + #define ROUND(x) (int) ((x)+0.5)
295 + //#include <string.h>
296 + #include "../lib-src/portmidi/pm_common/portmidi.h"
297 +- #include "../lib-src/portaudio-v19/src/common/pa_util.h"
298 + #include "NoteTrack.h"
299 ++
300 ++PaTime PaUtil_GetTime( void )
301 ++{
302 ++#ifdef HAVE_MACH_ABSOLUTE_TIME
303 ++ return mach_absolute_time() * machSecondsConversionScaler_;
304 ++#elif defined(HAVE_CLOCK_GETTIME)
305 ++ struct timespec tp;
306 ++ clock_gettime(CLOCK_REALTIME, &tp);
307 ++ return (PaTime)(tp.tv_sec + tp.tv_nsec * 1e-9);
308 ++#else
309 ++ struct timeval tv;
310 ++ gettimeofday( &tv, NULL );
311 ++ return (PaTime) tv.tv_usec * 1e-6 + tv.tv_sec;
312 ++#endif
313 ++}
314 ++
315 + #endif
316 +
317 + #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT