summary refs log tree commit diff
diff options
context:
space:
mode:
authorBernardo Meurer <bernardo@meurer.org>2022-01-31 17:43:47 -0800
committerBernardo Meurer <bernardo@meurer.org>2022-01-31 17:43:47 -0800
commit1ae972c0195d09532d7401d122c9554637624df8 (patch)
tree64f5745f858b3982612f91ffe6753b47b47acb56
parent4319059b4237c175218007f9cbf79afeea5b94be (diff)
downloadnixpkgs-1ae972c0195d09532d7401d122c9554637624df8.tar
nixpkgs-1ae972c0195d09532d7401d122c9554637624df8.tar.gz
nixpkgs-1ae972c0195d09532d7401d122c9554637624df8.tar.bz2
nixpkgs-1ae972c0195d09532d7401d122c9554637624df8.tar.lz
nixpkgs-1ae972c0195d09532d7401d122c9554637624df8.tar.xz
nixpkgs-1ae972c0195d09532d7401d122c9554637624df8.tar.zst
nixpkgs-1ae972c0195d09532d7401d122c9554637624df8.zip
roon-bridge: 1.8-814 -> 1.8-880
-rw-r--r--pkgs/servers/roon-bridge/default.nix67
1 files changed, 38 insertions, 29 deletions
diff --git a/pkgs/servers/roon-bridge/default.nix b/pkgs/servers/roon-bridge/default.nix
index 14161b5d5a3..9b896cd2a11 100644
--- a/pkgs/servers/roon-bridge/default.nix
+++ b/pkgs/servers/roon-bridge/default.nix
@@ -2,71 +2,80 @@
 , alsa-utils
 , autoPatchelfHook
 , fetchurl
+, ffmpeg
 , lib
 , makeWrapper
+, openssl
 , stdenv
 , zlib
 }:
-let
-  inherit (stdenv.targetPlatform) system;
-  throwSystem = throw "Unsupported system: ${system}";
-in
 stdenv.mkDerivation rec {
   pname = "roon-bridge";
-  version = "1.8-814";
+  version = "1.8-880";
 
   src =
     let
       urlVersion = builtins.replaceStrings [ "." "-" ] [ "00" "00" ] version;
+      inherit (stdenv.targetPlatform) system;
+      noSuchSystem = throw "Unsupposed system: ${system}";
     in
       {
         x86_64-linux = fetchurl {
           url = "http://download.roonlabs.com/builds/RoonBridge_linuxx64_${urlVersion}.tar.bz2";
-          sha256 = "sha256-dersaP/8qkl9k81FrgMieB0P4nKmDwjLW5poqKhEn7A=";
+          sha256 = "sha256-YTLy3D1CQR1hlsGw2MmZtxHT82T0PCYZxD4adt2m1+o=";
         };
         aarch64-linux = fetchurl {
           url = "http://download.roonlabs.com/builds/RoonBridge_linuxarmv8_${urlVersion}.tar.bz2";
-          sha256 = "sha256-zZj7PkLUYYHo3dngqErv1RqynSXi6/D5VPZWfrppX5U=";
+          sha256 = "sha256-aCQtYMUIzwhmYJW4a8cFzIRuxyMVIkeaJH4w1Lasp3M=";
         };
-      }.${system} or throwSystem;
+      }.${system} or noSuchSystem;
+
+  dontConfigure = true;
+  dontBuild = true;
 
   buildInputs = [
     alsa-lib
-    alsa-utils
     zlib
+    stdenv.cc.cc.lib
   ];
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out
-    mv * $out
-    runHook postInstall
-  '';
-
-  postFixup =
+  installPhase =
     let
-      linkFix = bin: ''
-        sed -i '/ulimit/d' ${bin}
-        sed -i '/ln -sf/d' ${bin}
-        ln -sf $out/RoonMono/bin/mono-sgen $out/RoonMono/bin/${builtins.baseNameOf bin}
-      '';
-      wrapFix = bin: ''
-        wrapProgram ${bin} --prefix PATH : ${lib.makeBinPath [ alsa-utils ]}
+      fixBin = binPath: ''
+        (
+          sed -i '/ulimit/d' ${binPath}
+          sed -i 's@^SCRIPT=.*@SCRIPT="$(basename "${binPath}")"@' ${binPath}
+          wrapProgram ${binPath} \
+            --argv0 "$(basename ${binPath})" \
+            --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ alsa-lib ffmpeg openssl ]}" \
+            --prefix PATH : "${lib.makeBinPath [ alsa-utils ffmpeg ]}"
+        )
       '';
     in
     ''
-      ${linkFix "$out/Bridge/RAATServer"}
-      ${linkFix "$out/Bridge/RoonBridge"}
-      ${linkFix "$out/Bridge/RoonBridgeHelper"}
+      runHook preInstall
+      mkdir -p $out
+      mv * $out
+
+      rm $out/check.sh
+      rm $out/start.sh
+      rm $out/VERSION
+
+      ${fixBin "${placeholder "out"}/Bridge/RAATServer"}
+      ${fixBin "${placeholder "out"}/Bridge/RoonBridge"}
+      ${fixBin "${placeholder "out"}/Bridge/RoonBridgeHelper"}
+
+      mkdir -p $out/bin
+      makeWrapper "$out/Bridge/RoonBridge" "$out/bin/RoonBridge" --run "cd $out"
 
-      ${wrapFix "$out/check.sh"}
-      ${wrapFix "$out/start.sh"}
+      runHook postInstall
     '';
 
   meta = with lib; {
     description = "The music player for music lovers";
+    changelog = "https://community.roonlabs.com/c/roon/software-release-notes/18";
     homepage = "https://roonlabs.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ lovesegfault ];