summary refs log tree commit diff
path: root/pkgs/applications/audio/reaper
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2021-01-25 21:06:15 +0100
committerGitHub <noreply@github.com>2021-01-25 21:06:15 +0100
commitfc5c93018166d3efad208791e77c013f6ab97ec9 (patch)
tree688c052c35b739f6bbd2017605b26155baf7b79c /pkgs/applications/audio/reaper
parent916815204eac9e4a41f263dd9855e51380135674 (diff)
parent32f19166bc09aa2cd2c89dcec6e84ba6a183e369 (diff)
downloadnixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.tar
nixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.tar.gz
nixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.tar.bz2
nixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.tar.lz
nixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.tar.xz
nixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.tar.zst
nixpkgs-fc5c93018166d3efad208791e77c013f6ab97ec9.zip
Merge pull request #110582 from ilian/fix/reaper
reaper: mark audio backend libs as optional, add missing plugin libs
Diffstat (limited to 'pkgs/applications/audio/reaper')
-rw-r--r--pkgs/applications/audio/reaper/default.nix45
1 files changed, 27 insertions, 18 deletions
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 4d3ac1d1f2d..212b4c716ff 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -1,7 +1,16 @@
-{ lib, stdenv, fetchurl, autoPatchelfHook, makeWrapper
-, alsaLib, xorg, libjack2
-, gtk3, pango, gdk-pixbuf, cairo, glib, freetype
-, libpulseaudio, xdg_utils
+{ config, lib, stdenv
+, fetchurl
+, autoPatchelfHook
+, makeWrapper
+
+, alsaLib
+, gtk3
+, lame
+, ffmpeg
+, vlc
+
+, jackSupport ? true, libjack2
+, pulseaudioSupport ? config.pulseaudio or true, libpulseaudio
 }:
 
 stdenv.mkDerivation rec {
@@ -17,22 +26,15 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     alsaLib
-
-    xorg.libX11
-    xorg.libXi
-
-    gdk-pixbuf
-    pango
-    cairo
-    glib
-    freetype
-
-    xdg_utils
+    stdenv.cc.cc.lib # reaper and libSwell need libstdc++.so.6
+    gtk3
   ];
 
   runtimeDependencies = [
-    gtk3
-  ];
+    gtk3 # libSwell needs libgdk-3.so.0
+  ]
+  ++ lib.optional jackSupport libjack2
+  ++ lib.optional pulseaudioSupport libpulseaudio;
 
   dontBuild = true;
 
@@ -42,8 +44,15 @@ stdenv.mkDerivation rec {
       --integrate-user-desktop
     rm $out/opt/REAPER/uninstall-reaper.sh
 
+    # Dynamic loading of plugin dependencies does not adhere to rpath of
+    # reaper executable that gets modified with runtimeDependencies.
+    # Patching each plugin with DT_NEEDED is cumbersome and requires
+    # hardcoding of API versions of each dependency.
+    # Setting the rpath of the plugin shared object files does not
+    # seem to have an effect for some plugins.
+    # We opt for wrapping the executable with LD_LIBRARY_PATH prefix.
     wrapProgram $out/opt/REAPER/reaper \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libpulseaudio libjack2 ]}"
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ lame ffmpeg vlc ]}"
 
     mkdir $out/bin
     ln -s $out/opt/REAPER/reaper $out/bin/