From 13b1ca2e39d39ec1eceaa23659f9a1d6c4887b96 Mon Sep 17 00:00:00 2001 From: Sughosha Date: Thu, 21 Aug 2025 11:51:50 +0530 Subject: [PATCH] nongnu: reaper: Update to 7.48. * nongnu/packages/music.scm (reaper): Update to 7.48. [arguments]<#:patchelf-plan>: Rewrite. <#:phases>: Realign; in 'install phase, do not delete and symlink "libSwell.so"; do not symlink "reaper", "reaper_host_x86_64" and "EULA.txt"; Add 'replace-swell, 'wrap-program and 'fix-desktop-entry phases; replace 'install-license-files. [native-inputs]: Remove which. [inputs]: Realign; add ffmpeg, jack-1, lame, mesa, pulseaudio, python and vlc. [supported-systems]: Realign. --- nongnu/packages/music.scm | 145 ++++++++++++++++++++++++-------------- 1 file changed, 93 insertions(+), 52 deletions(-) diff --git a/nongnu/packages/music.scm b/nongnu/packages/music.scm index d8297366..cdcb0231 100644 --- a/nongnu/packages/music.scm +++ b/nongnu/packages/music.scm @@ -1,5 +1,5 @@ ;;; SPDX-License-Identifier: GPL-3.0-or-later -;;; Copyright © 2022 Sughosha +;;; Copyright © 2022, 2025 Sughosha ;;; Copyright © 2023 Jonathan Brielmaier (define-module (nongnu packages music) @@ -7,8 +7,13 @@ #:use-module (gnu packages base) #:use-module (gnu packages cpp) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gl) #:use-module (gnu packages gcc) #:use-module (gnu packages linux) + #:use-module (gnu packages mp3) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages python) + #:use-module (gnu packages video) #:use-module (guix download) #:use-module (guix gexp) #:use-module (guix packages) @@ -21,7 +26,7 @@ (define-public reaper (package (name "reaper") - (version "6.73") + (version "7.48") (source (origin (method url-fetch) @@ -41,62 +46,98 @@ (sha256 (base32 (match (%current-system) - ("x86_64-linux" "1hd7fbk0px45fxhqa7nqcnij8ls2fhpjp60v840vy2zqs9fkcr52") - ("i686-linux" "11vk32mxyda9xl08pp2ivd1vsahnw6w7d08in4syz6iannfwp19b") - ("aarch64-linux" "0zpkaiwwxn8yh3s1d22qswshbgaxx5d8iy17hb3w256zgb722yjw") - ("armhf-linux" "18174b1lgsk73gxhala471ppzbrpa1cs953b5par998yqgh74znk") - ;; We need a valid base32 default case + ("x86_64-linux" + "1k6610hhf21i6ps2m1146n6sjwzvi3qqnfrhw43w3hcl0cspxi56") + ("i686-linux" + "1i6f1zgpzi6h82wr2jn4jgqkfzkamfv191hplf1r6a3ncc4pzswp") + ("aarch64-linux" + "07hxyfb9d6nr3zbf931sjzrfqy78prkvqrhdxzcpcbn1pg935lcv") + ("armhf-linux" + "0wvzv3x5f5gmz0113pgc14i0vhnr3np1rns1kxzilz0vykx0z4iq") (_ "0000000000000000000000000000000000000000000000000000")))))) (build-system binary-build-system) (arguments (list #:strip-binaries? #f ;allocated section `.dynsym' not in segment - #:patchelf-plan #~`(("REAPER/reaper" ("libc" "gcc" "alsa-lib")) - ("REAPER/reamote-server" ("libc" "gcc")) - ("REAPER/Plugins/reaper_host_x86_64" ("libc" "gcc"))) - #:phases #~(modify-phases %standard-phases - (replace 'install - (lambda* (#:key outputs inputs #:allow-other-keys) - (let* ((target (string-append #$output "/opt")) - (bin (string-append #$output "/bin")) - (libexec (string-append #$output "/libexec")) - (data (string-append #$output "/share")) - (doc (string-append data "/doc/reaper-" - #$version))) - (setenv "HOME" "/tmp") - (setenv "XDG_DATA_HOME" data) - (invoke "sh" "./install-reaper.sh" "--install" - target "--integrate-user-desktop") - (delete-file (string-append target - "/REAPER/uninstall-reaper.sh")) - (delete-file (string-append target - "/REAPER/libSwell.so")) - (symlink (search-input-file inputs - "/lib/libSwell.so") - (string-append target - "/REAPER/libSwell.so")) - (mkdir-p bin) - (symlink (string-append target "/REAPER/reaper") - (string-append bin "/reaper")) - (mkdir-p libexec) - (symlink (string-append target - "/REAPER/Plugins/reaper_host_x86_64") - (string-append libexec - "/reaper_host_x86_64")) - (mkdir-p doc) - (symlink (string-append target - "/REAPER/EULA.txt") - (string-append doc "/LICENSE")))))))) + #:modules + '((nonguix build binary-build-system) + (guix build utils) + (nonguix build utils) + (ice-9 match)) + #:patchelf-plan + #~(map (lambda (file) + `(,file + ,(append '("libc" "gcc") + (match (basename file) + ("reaper" '("alsa-lib" "jack" "pulseaudio")) + ((or "reaper_host_x86_64" + "reaper_host_i686" + "reaper_host_aarch64" + "reaper_host_armv7l") + '("alsa-lib")) + ("reaper_video.so" '("mesa" "vlc")) + ("reaper_mp3dec.so" '("lame")) + (_ '()))))) + `("REAPER/reaper" + ,#$(string-append "REAPER/Plugins/reaper_host_" + (match (%current-system) + ("x86_64-linux" "x86_64") + ("i686-linux" "i686") + ("aarch64-linux" "aarch64") + ("armf-linux" "armv7l") + (_ "unsupported"))) + ,@(find-files "REAPER/Plugins" "\\.so$"))) + #:phases + #~(modify-phases %standard-phases + (replace 'install + (lambda _ + (setenv "HOME" "/tmp") + (setenv "XDG_DATA_HOME" (string-append #$output "/share")) + (invoke "sh" "./install-reaper.sh" "--install" + (string-append #$output "/opt") + "--integrate-user-desktop") + (delete-file (string-append #$output "/opt/REAPER/" + "uninstall-reaper.sh")))) + (add-after 'install 'replace-swell + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion (string-append #$output + "/opt/REAPER") + (delete-file "libSwell.so") + (symlink (search-input-file inputs "/lib/libSwell.so") + "libSwell.so")))) + (add-after 'replace-swell 'wrap-program + (lambda _ + (let ((wrapper (string-append #$output "/bin/reaper")) + (bin (string-append #$output "/opt/REAPER/reaper"))) + (make-wrapper wrapper bin + `("PATH" ":" prefix + (,(string-append #$(this-package-input "ffmpeg") + "/bin"))))))) + (add-after 'wrap-program 'fix-desktop-entry + (lambda _ + (substitute* (string-append #$output + "/share/applications/" + "cockos-reaper.desktop") + (("opt/REAPER") "bin")))) + (replace 'install-license-files + (lambda _ + (install-file "REAPER/EULA.txt" + (string-append #$output "/share/doc/reaper-" + #$version))))))) (native-inputs - (list - which - xdg-utils)) + (list xdg-utils)) (inputs - (list - alsa-lib - `(,gcc "lib") - swell)) - (supported-systems '("x86_64-linux" "i686-linux" "aarch64-linux" - "armhf-linux")) + (list alsa-lib + `(,gcc "lib") + ffmpeg + jack-1 + lame + mesa + pulseaudio + python + swell + vlc)) + (supported-systems + '("x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux")) (home-page "https://www.reaper.fm") (synopsis "Digital audio workstation") (description