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.
This commit is contained in:
Sughosha 2025-08-21 11:51:50 +05:30
parent 3f4a1907ca
commit 13b1ca2e39

View file

@ -1,5 +1,5 @@
;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2022 Sughosha <sughosha@proton.me>
;;; Copyright © 2022, 2025 Sughosha <sughosha@proton.me>
;;; Copyright © 2023 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(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