diff options
-rw-r--r-- | gnu/local.mk | 2 | ||||
-rw-r--r-- | gnu/packages/audio.scm | 66 | ||||
-rw-r--r-- | gnu/packages/patches/audacity-add-include.patch | 15 | ||||
-rw-r--r-- | gnu/packages/patches/audacity-build-with-system-portaudio.patch | 62 |
4 files changed, 41 insertions, 104 deletions
diff --git a/gnu/local.mk b/gnu/local.mk index a928ef3311..3a954f8bf9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -858,8 +858,6 @@ dist_patch_DATA = \ %D%/packages/patches/ath9k-htc-firmware-gcc-compat.patch \ %D%/packages/patches/ath9k-htc-firmware-objcopy.patch \ %D%/packages/patches/atlas-gfortran-compat.patch \ - %D%/packages/patches/audacity-build-with-system-portaudio.patch \ - %D%/packages/patches/audacity-add-include.patch \ %D%/packages/patches/audiofile-fix-datatypes-in-tests.patch \ %D%/packages/patches/audiofile-fix-sign-conversion.patch \ %D%/packages/patches/audiofile-CVE-2015-7747.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index eae0d1fe68..0fb476d92f 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -725,7 +725,7 @@ engineers, musicians, soundtrack editors and composers.") (define-public audacity (package (name "audacity") - (version "2.4.2") + (version "3.1.3") (source (origin (method git-fetch) @@ -735,9 +735,7 @@ engineers, musicians, soundtrack editors and composers.") (file-name (git-file-name name version)) (sha256 (base32 - "0lklcvqkxrr2gkb9gh3422iadzl2rv9v0a8s76rwq43lj2im7546")) - (patches (search-patches "audacity-build-with-system-portaudio.patch" - "audacity-add-include.patch")) + "1689q9apbjf9nnda62shb8j7hm4hxd47mhk4l5h3c728mjjkilmi")) (modules '((guix build utils))) (snippet ;; Remove bundled libraries. @@ -745,13 +743,10 @@ engineers, musicians, soundtrack editors and composers.") (for-each (lambda (dir) (delete-file-recursively (string-append "lib-src/" dir))) - '("expat" "ffmpeg" "lame" "libflac" "libid3tag" "libmad" "libogg" - "libsndfile" "libsoxr" "libvamp" "libvorbis" "lv2" - "portmidi" "soundtouch" "twolame" + '("libsoxr" "libvamp" "lv2" "soundtouch" "sqlite" "twolame" ;; FIXME: these libraries have not been packaged yet: ;; "libnyquist" ;; "libscorealign" - ;; "libwidgetextra" ;; "portburn" ;; "portsmf" ;; "portmixer" @@ -763,26 +758,30 @@ engineers, musicians, soundtrack editors and composers.") #t)))) (build-system cmake-build-system) (inputs - (list wxwidgets + (list wxwidgets-3.1 gtk+ alsa-lib jack-1 expat ffmpeg lame + linux-libre-headers flac libid3tag + libjpeg-turbo libmad ;;("libsbsms" ,libsbsms) ;bundled version is modified libsndfile soundtouch soxr ;replaces libsamplerate + sqlite twolame vamp libvorbis lv2 lilv ;for lv2 suil ;for lv2 + portaudio portmidi)) (native-inputs `(("autoconf" ,autoconf) @@ -795,10 +794,12 @@ engineers, musicians, soundtrack editors and composers.") (arguments `(#:configure-flags (list - ;; Loading FFmpeg dynamically is problematic. - "-Daudacity_use_ffmpeg=linked" - "-Daudacity_use_lame=system" - "-Daudacity_use_portsmf=system") + "-Daudacity_conan_enabled=off" + "-Daudacity_lib_preference=system" + ;; TODO: enable this flag once we've packaged all dependencies + ;; "-Daudacity_obey_system_dependencies=on" + ;; disable crash reports, updates, ..., anything that phones home + "-Daudacity_has_networking=off") #:imported-modules ((guix build glib-or-gtk-build-system) ,@%cmake-build-system-modules) #:modules @@ -807,27 +808,42 @@ engineers, musicians, soundtrack editors and composers.") ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)) #:phases (modify-phases %standard-phases + (add-after 'unpack 'fix-cmake-rpath + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "CMakeLists.txt" + (("\\$ORIGIN/\\.\\./\\$\\{_PKGLIB\\}") + (string-append (assoc-ref outputs "out") "/lib/audacity")) + (("CMAKE_BUILD_WITH_INSTALL_RPATH [A-Z]*") + "CMAKE_BUILD_WITH_INSTALL_RPATH TRUE") + (("CMAKE_INSTALL_RPATH_USE_LINK_PATH [A-Z]*") + "CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE")) + (substitute* "src/CMakeLists.txt" + (("-Wl,--disable-new-dtags") "-Wl,--enable-new-dtags")))) (add-after 'unpack 'comment-out-revision-ident (lambda _ + (substitute* "src/CMakeLists.txt" + (("file\\( TOUCH \".*RevisionIdent\\.h\" \\)" directive) + (string-append "# " directive))) (substitute* "src/AboutDialog.cpp" (("(.*RevisionIdent\\.h.*)" include-line) (string-append "// " include-line))))) (add-after 'unpack 'use-upstream-headers (lambda* (#:key inputs #:allow-other-keys) - (substitute* '("src/NoteTrack.cpp" - "src/AudioIO.cpp" - "src/AudioIO.h" - "src/AudioIOBase.cpp") - (("../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h") - (("../lib-src/portmidi/porttime/porttime.h") "porttime.h")) - (substitute* "src/prefs/MidiIOPrefs.cpp" - (("../../lib-src/portmidi/pm_common/portmidi.h") "portmidi.h")))) + (substitute* '("libraries/lib-files/FileNames.cpp") + (("\"/usr/include/linux/magic.h\"") "<linux/magic.h>")))) (add-after 'wrap-program 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))) - ;; The test suite is not "well exercised" according to the developers, - ;; and fails with various errors. See - ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>. - #:tests? #f)) + ;; The test suite is not "well exercised" according to the developers, + ;; and fails with various errors. See + ;; <http://sourceforge.net/p/audacity/mailman/message/33524292/>. + #:tests? #f)) + (native-search-paths + (list (search-path-specification + (variable "AUDACITY_MODULES_PATH") + (files '("lib/audacity/modules"))) + (search-path-specification + (variable "AUDACITY_PATH") + (files '("share/audacity"))))) (home-page "https://www.audacityteam.org/") (synopsis "Software for recording and editing sounds") (description diff --git a/gnu/packages/patches/audacity-add-include.patch b/gnu/packages/patches/audacity-add-include.patch deleted file mode 100644 index a7f27918e7..0000000000 --- a/gnu/packages/patches/audacity-add-include.patch +++ /dev/null @@ -1,15 +0,0 @@ -Without <sys/time.h>, gettimeofday is undefined. - -diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp -index 0187e3962..e15d55f4c 100644 ---- a/src/AudioIO.cpp -+++ b/src/AudioIO.cpp -@@ -479,6 +479,8 @@ time warp info and AudioIOListener and whether the playback is looped. - #include "../lib-src/portmidi/porttime/porttime.h" - #include "../lib-src/header-substitutes/allegro.h" - -+#include <sys/time.h> -+ - #define MIDI_SLEEP 10 /* milliseconds */ - // how long do we think the thread that fills MIDI buffers, - // if it is separate from the portaudio thread, diff --git a/gnu/packages/patches/audacity-build-with-system-portaudio.patch b/gnu/packages/patches/audacity-build-with-system-portaudio.patch deleted file mode 100644 index 05325a1493..0000000000 --- a/gnu/packages/patches/audacity-build-with-system-portaudio.patch +++ /dev/null @@ -1,62 +0,0 @@ -Downloaded from here: -https://sourceforge.net/p/audacity/mailman/message/36106562/ - -Modified for use on later versions of audacity. - ->From 5f9482a191359f2c477763a36d2c865c5f186602 Mon Sep 17 00:00:00 2001 -From: Antonio Ospite <ao2@ao2.it> -Date: Tue, 7 Nov 2017 13:06:33 +0100 -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(-) - -diff --git a/src/AudioIO.cpp b/src/AudioIO.cpp -index 48715869c..bb4bf472c 100644 ---- a/src/AudioIO.cpp -+++ b/src/AudioIO.cpp -@@ -480,9 +480,22 @@ time warp info and AudioIOListener and whether the playback is looped. - #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" - #endif -+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 -+} - - #ifdef EXPERIMENTAL_AUTOMATED_INPUT_LEVEL_ADJUSTMENT - #define LOWER_BOUND 0.0 |