diff options
author | ilian <ilian@tuta.io> | 2021-01-23 12:07:05 +0100 |
---|---|---|
committer | ilian <ilian@tuta.io> | 2021-01-25 12:33:57 +0100 |
commit | 32f19166bc09aa2cd2c89dcec6e84ba6a183e369 (patch) | |
tree | 26fbe120e749c1fe518289cc2549a8d00864f72e /pkgs/applications/audio/reaper | |
parent | f6a583eeece936a1d917de67194fec4b6c74cf1f (diff) |
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 8f3a17bf1b6ea..5f89b4929dfc9 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/ |