aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLiliana Marie Prikler <liliana.prikler@gmail.com>2023-02-26 21:50:11 +0100
committerLiliana Marie Prikler <liliana.prikler@gmail.com>2023-03-05 08:17:58 +0100
commitbe6485405e15abf7b12f1d93ad19ccef0a540412 (patch)
tree32c8ec2efa5f103425aebd5a3cba0b92129be35d
parentc497e1b0ae48704f21146f51f9e842e5c2917a1f (diff)
downloadguix-be6485405e15abf7b12f1d93ad19ccef0a540412.tar
guix-be6485405e15abf7b12f1d93ad19ccef0a540412.tar.gz
gnu: Add tenacity.
* gnu/packages/audio.scm (tenacity): New variable.
-rw-r--r--gnu/packages/audio.scm111
1 files changed, 111 insertions, 0 deletions
diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm
index ffb972175e..6f3fa2a580 100644
--- a/gnu/packages/audio.scm
+++ b/gnu/packages/audio.scm
@@ -990,6 +990,117 @@ and editing digital audio. It features digital effects and spectrum analysis
tools.")
(license license:gpl2+)))
+(define-public tenacity
+ (package
+ (name "tenacity")
+ (version "1.3-beta2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/tenacityteam/tenacity")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0pd2vxzqzq7ikz7l2a1h9qwq08276xicvphrpn47gvmwaslah1gn"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:imported-modules `((guix build glib-or-gtk-build-system)
+ ,@%cmake-build-system-modules)
+ #:modules
+ '((guix build utils)
+ (guix build cmake-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'use-upstream-headers
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("libraries/lib-files/FileNames.cpp")
+ (("\"/usr/include/linux/magic.h\"") "<linux/magic.h>"))))
+ (add-after 'unpack
+ 'i-spy-with-my-little-eye-something-in-the-wrong-folder
+ (lambda _
+ (symlink (string-append (getcwd) "/images")
+ "src/images")))
+ (add-after 'unpack 'fix-cmake-rpath
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ (("\\$ORIGIN/\\.\\./\\$\\{_PKGLIB\\}")
+ (string-append (assoc-ref outputs "out") "/lib/tenacity"))
+ (("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"
+ ;; Despite the name, this script breaks rpath. Don't run it.
+ (("install.*linux/fix_rpath\\.cmake.*")
+ "")
+ (("-Wl,--disable-new-dtags") "-Wl,--enable-new-dtags"))))
+ (replace 'configure
+ (lambda args
+ (define %configure (assoc-ref %standard-phases 'configure))
+ (with-exception-handler
+ (lambda (error)
+ (unless (invoke-error? error)
+ (raise error))
+ ;; Have you tried turning it off and on again?
+ (apply invoke (invoke-error-program error)
+ (invoke-error-arguments error)))
+ (lambda ()
+ (apply %configure args))
+ #:unwind? #t)))
+ (add-after 'wrap-program 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))
+ ;; Test suite? Which test suite?
+ #:tests? #f))
+ (inputs
+ (list wxwidgets
+ gtk+
+ alsa-lib
+ jack-1
+ expat
+ lame
+ flac
+ ffmpeg
+ libid3tag
+ libjpeg-turbo
+ ;;("libsbsms" ,libsbsms) ;bundled version is modified
+ libsndfile
+ mpg123
+ soundtouch
+ soxr ;replaces libsamplerate
+ sqlite
+ twolame
+ vamp
+ libvorbis
+ lv2
+ lilv ;for lv2
+ suil ;for lv2
+ portaudio
+ portmidi
+ wavpack))
+ (native-inputs
+ (list gettext-minimal ;for msgfmt
+ libtool
+ pkg-config
+ python
+ which))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "TENACITY_MODULES_PATH")
+ (files '("lib/tenacity/modules")))
+ (search-path-specification
+ (variable "TENACITY_PATH")
+ (files '("share/tenacity")))))
+ (home-page "https://tenacityaudio.org/")
+ (synopsis "Software for recording and editing sounds")
+ (description
+ "Tenacity is a multi-track audio editor designed for recording, playing
+and editing digital audio. It features digital effects and spectrum analysis
+tools.")
+ (license license:gpl2+)))
+
(define-public audiofile
(package
(name "audiofile")