summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nongnu/packages/music.scm145
1 files changed, 93 insertions, 52 deletions
diff --git a/nongnu/packages/music.scm b/nongnu/packages/music.scm
index d829736..567beb2 100644
--- a/nongnu/packages/music.scm
+++ b/nongnu/packages/music.scm
@@ -1,5 +1,5 @@
1;;; SPDX-License-Identifier: GPL-3.0-or-later 1;;; SPDX-License-Identifier: GPL-3.0-or-later
2;;; Copyright © 2022 Sughosha <sughosha@proton.me> 2;;; Copyright © 2022, 2025, 2026 Sughosha <sughosha@proton.me>
3;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de> 3;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
4 4
5(define-module (nongnu packages music) 5(define-module (nongnu packages music)
@@ -7,8 +7,13 @@
7 #:use-module (gnu packages base) 7 #:use-module (gnu packages base)
8 #:use-module (gnu packages cpp) 8 #:use-module (gnu packages cpp)
9 #:use-module (gnu packages freedesktop) 9 #:use-module (gnu packages freedesktop)
10 #:use-module (gnu packages gl)
10 #:use-module (gnu packages gcc) 11 #:use-module (gnu packages gcc)
11 #:use-module (gnu packages linux) 12 #:use-module (gnu packages linux)
13 #:use-module (gnu packages mp3)
14 #:use-module (gnu packages pulseaudio)
15 #:use-module (gnu packages python)
16 #:use-module (gnu packages video)
12 #:use-module (guix download) 17 #:use-module (guix download)
13 #:use-module (guix gexp) 18 #:use-module (guix gexp)
14 #:use-module (guix packages) 19 #:use-module (guix packages)
@@ -21,7 +26,7 @@
21(define-public reaper 26(define-public reaper
22 (package 27 (package
23 (name "reaper") 28 (name "reaper")
24 (version "6.73") 29 (version "7.77")
25 (source 30 (source
26 (origin 31 (origin
27 (method url-fetch) 32 (method url-fetch)
@@ -41,62 +46,98 @@
41 (sha256 46 (sha256
42 (base32 47 (base32
43 (match (%current-system) 48 (match (%current-system)
44 ("x86_64-linux" "1hd7fbk0px45fxhqa7nqcnij8ls2fhpjp60v840vy2zqs9fkcr52") 49 ("x86_64-linux"
45 ("i686-linux" "11vk32mxyda9xl08pp2ivd1vsahnw6w7d08in4syz6iannfwp19b") 50 "1w8dsrdca72c2cznww869f1j206d6743hjf3afp4p02lgr1rckf9")
46 ("aarch64-linux" "0zpkaiwwxn8yh3s1d22qswshbgaxx5d8iy17hb3w256zgb722yjw") 51 ("i686-linux"
47 ("armhf-linux" "18174b1lgsk73gxhala471ppzbrpa1cs953b5par998yqgh74znk") 52 "0iz27k59plcz1rfgs2fdyyrd7l5g2hsk8m001vnnkysxgrmy6xz1")
48 ;; We need a valid base32 default case 53 ("aarch64-linux"
54 "1kfn9ybk8sfhrg4r9nqy06sawqx45gjc4f0b3arzbrpvl6qwywgz")
55 ("armhf-linux"
56 "0wzciamkz2nqqsi7xrckfdwjczhf0faidn4fyqv6s2k6hqnyb80d")
49 (_ "0000000000000000000000000000000000000000000000000000")))))) 57 (_ "0000000000000000000000000000000000000000000000000000"))))))
50 (build-system binary-build-system) 58 (build-system binary-build-system)
51 (arguments 59 (arguments
52 (list #:strip-binaries? #f ;allocated section `.dynsym' not in segment 60 (list #:strip-binaries? #f ;allocated section `.dynsym' not in segment
53 #:patchelf-plan #~`(("REAPER/reaper" ("libc" "gcc" "alsa-lib")) 61 #:modules
54 ("REAPER/reamote-server" ("libc" "gcc")) 62 '((nonguix build binary-build-system)
55 ("REAPER/Plugins/reaper_host_x86_64" ("libc" "gcc"))) 63 (guix build utils)
56 #:phases #~(modify-phases %standard-phases 64 (nonguix build utils)
57 (replace 'install 65 (ice-9 match))
58 (lambda* (#:key outputs inputs #:allow-other-keys) 66 #:patchelf-plan
59 (let* ((target (string-append #$output "/opt")) 67 #~(map (lambda (file)
60 (bin (string-append #$output "/bin")) 68 `(,file
61 (libexec (string-append #$output "/libexec")) 69 ,(append '("libc" "gcc")
62 (data (string-append #$output "/share")) 70 (match (basename file)
63 (doc (string-append data "/doc/reaper-" 71 ("reaper" '("alsa-lib" "jack" "pulseaudio"))
64 #$version))) 72 ((or "reaper_host_x86_64"
65 (setenv "HOME" "/tmp") 73 "reaper_host_i686"
66 (setenv "XDG_DATA_HOME" data) 74 "reaper_host_aarch64"
67 (invoke "sh" "./install-reaper.sh" "--install" 75 "reaper_host_armv7l")
68 target "--integrate-user-desktop") 76 '("alsa-lib"))
69 (delete-file (string-append target 77 ("reaper_video.so" '("mesa" "vlc"))
70 "/REAPER/uninstall-reaper.sh")) 78 ("reaper_mp3dec.so" '("lame"))
71 (delete-file (string-append target 79 (_ '())))))
72 "/REAPER/libSwell.so")) 80 `("REAPER/reaper"
73 (symlink (search-input-file inputs 81 ,#$(string-append "REAPER/Plugins/reaper_host_"
74 "/lib/libSwell.so") 82 (match (%current-system)
75 (string-append target 83 ("x86_64-linux" "x86_64")
76 "/REAPER/libSwell.so")) 84 ("i686-linux" "i686")
77 (mkdir-p bin) 85 ("aarch64-linux" "aarch64")
78 (symlink (string-append target "/REAPER/reaper") 86 ("armf-linux" "armv7l")
79 (string-append bin "/reaper")) 87 (_ "unsupported")))
80 (mkdir-p libexec) 88 ,@(find-files "REAPER/Plugins" "\\.so$")))
81 (symlink (string-append target 89 #:phases
82 "/REAPER/Plugins/reaper_host_x86_64") 90 #~(modify-phases %standard-phases
83 (string-append libexec 91 (replace 'install
84 "/reaper_host_x86_64")) 92 (lambda _
85 (mkdir-p doc) 93 (setenv "HOME" "/tmp")
86 (symlink (string-append target 94 (setenv "XDG_DATA_HOME" (string-append #$output "/share"))
87 "/REAPER/EULA.txt") 95 (invoke "sh" "./install-reaper.sh" "--install"
88 (string-append doc "/LICENSE")))))))) 96 (string-append #$output "/opt")
97 "--integrate-user-desktop")
98 (delete-file (string-append #$output "/opt/REAPER/"
99 "uninstall-reaper.sh"))))
100 (add-after 'install 'replace-swell
101 (lambda* (#:key inputs #:allow-other-keys)
102 (with-directory-excursion (string-append #$output
103 "/opt/REAPER")
104 (delete-file "libSwell.so")
105 (symlink (search-input-file inputs "/lib/libSwell.so")
106 "libSwell.so"))))
107 (add-after 'replace-swell 'wrap-program
108 (lambda _
109 (let ((wrapper (string-append #$output "/bin/reaper"))
110 (bin (string-append #$output "/opt/REAPER/reaper")))
111 (make-wrapper wrapper bin
112 `("PATH" ":" prefix
113 (,(string-append #$(this-package-input "ffmpeg")
114 "/bin")))))))
115 (add-after 'wrap-program 'fix-desktop-entry
116 (lambda _
117 (substitute* (string-append #$output
118 "/share/applications/"
119 "cockos-reaper.desktop")
120 (("opt/REAPER") "bin"))))
121 (replace 'install-license-files
122 (lambda _
123 (install-file "REAPER/EULA.txt"
124 (string-append #$output "/share/doc/reaper-"
125 #$version)))))))
89 (native-inputs 126 (native-inputs
90 (list 127 (list xdg-utils))
91 which
92 xdg-utils))
93 (inputs 128 (inputs
94 (list 129 (list alsa-lib
95 alsa-lib 130 `(,gcc "lib")
96 `(,gcc "lib") 131 ffmpeg
97 swell)) 132 jack-1
98 (supported-systems '("x86_64-linux" "i686-linux" "aarch64-linux" 133 lame
99 "armhf-linux")) 134 mesa
135 pulseaudio
136 python
137 swell
138 vlc))
139 (supported-systems
140 '("x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))
100 (home-page "https://www.reaper.fm") 141 (home-page "https://www.reaper.fm")
101 (synopsis "Digital audio workstation") 142 (synopsis "Digital audio workstation")
102 (description 143 (description