From a098720fd91dbe045934c8a753c5e163d552dd8b Mon Sep 17 00:00:00 2001 From: Ryze Date: Wed, 17 Jul 2024 20:14:44 +0300 Subject: [PATCH] Add AudioRelay package --- packages/audiorelay.nix | 76 +++++++++++++++++++++++++++++++++++++++++ stackpkgs.nix | 1 + 2 files changed, 77 insertions(+) create mode 100644 packages/audiorelay.nix diff --git a/packages/audiorelay.nix b/packages/audiorelay.nix new file mode 100644 index 0000000..f90abeb --- /dev/null +++ b/packages/audiorelay.nix @@ -0,0 +1,76 @@ +{ + lib, + stdenv, + fetchzip, + makeWrapper, + temurin-bin-17, + zip, + + libglvnd, + alsa-lib, + libpulseaudio +}: + +let + manifest = '' + Manifest-Version: 1.0 + Main-Class: com.azefsw.audioconnect.desktop.app.MainKt + Specification-Title: Java Platform API Specification + Specification-Version: 17 + Specification-Vendor: Oracle Corporation + Implementation-Title: Java Runtime Environment + Implementation-Version: 17.0.6 + Implementation-Vendor: Eclipse Adoptium + Created-By: 17.0.5 (Eclipse Adoptium) + ''; + + runtimeLibs = [ + libglvnd + alsa-lib + libpulseaudio + stdenv.cc.cc.lib + ]; +in + +stdenv.mkDerivation { + pname = "audiorelay"; + version = "0.27.5"; + + src = fetchzip { + url = "https://dl.audiorelay.net/setups/linux/audiorelay-0.27.5.tar.gz"; + hash = "sha256-KfhAimDIkwYYUbEcgrhvN5DGHg8DpAHfGkibN1Ny4II="; + stripRoot = false; + }; + + nativeBuildInputs = [ + makeWrapper + zip + ]; + + # Patch the jar with manifest with main class to use it unwrapped + patchPhase = '' + mkdir META-INF + + echo '${manifest}' > META-INF/MANIFEST.MF + zip -r lib/app/audiorelay.jar META-INF/MANIFEST.MF + ''; + + installPhase = '' + runHook preInstall + + mkdir -p $out/lib + cp lib/app/audiorelay.jar $out/lib + + # Can't use from pkgs since these ones are older and newer fails to load some symbols + cp lib/runtime/lib/libnative-rtaudio.so $out/lib + cp lib/runtime/lib/libnative-opus.so $out/lib + + makeWrapper ${temurin-bin-17}/bin/java $out/bin/audiorelay \ + --add-flags "-jar $out/lib/audiorelay.jar" \ + --prefix LD_LIBRARY_PATH : $out/lib/ \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs} + + runHook postInstall + ''; + +} diff --git a/stackpkgs.nix b/stackpkgs.nix index bfec974..9a9da80 100644 --- a/stackpkgs.nix +++ b/stackpkgs.nix @@ -1,6 +1,7 @@ { callPackage }: { + audiorelay = callPackage ./packages/audiorelay.nix {}; compileOptimized = callPackage ./packages/compileOptimized.nix {}; vscode-extensions = callPackage ./packages/vscode-extensions.nix {}; }