diff options
author | Sandro <sandro.jaeckel@gmail.com> | 2021-01-25 21:06:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-25 21:06:15 +0100 |
commit | fc5c93018166d3efad208791e77c013f6ab97ec9 (patch) | |
tree | 688c052c35b739f6bbd2017605b26155baf7b79c /pkgs/applications/audio/reaper | |
parent | 916815204eac9e4a41f263dd9855e51380135674 (diff) | |
parent | 32f19166bc09aa2cd2c89dcec6e84ba6a183e369 (diff) |
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.nix | 45 |
1 files changed, 27 insertions, 18 deletions
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix index 4d3ac1d1f2df2..212b4c716ffa0 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/ |