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 |