From ec998e4b391acabca133b174573190d79a89c23e Mon Sep 17 00:00:00 2001 From: Atin Bainada Date: Sun, 5 Jan 2025 16:03:48 +0530 Subject: [PATCH] reaper: 7.28 -> 7.29 --- pkgs/applications/audio/reaper/default.nix | 196 +++++++++++++-------- pkgs/applications/audio/reaper/updater.sh | 4 +- 2 files changed, 123 insertions(+), 77 deletions(-) diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix index 4a1bae404d36..e40c3e231dcc 100644 --- a/pkgs/applications/audio/reaper/default.nix +++ b/pkgs/applications/audio/reaper/default.nix @@ -1,100 +1,135 @@ -{ config, lib, stdenv -, fetchurl -, autoPatchelfHook -, makeWrapper -, undmg +{ + config, + lib, + stdenv, + fetchurl, + autoPatchelfHook, + makeWrapper, + undmg, -, alsa-lib -, curl -, gtk3 -, lame -, libxml2 -, ffmpeg -, vlc -, xdg-utils -, xdotool -, which + alsa-lib, + curl, + gtk3, + lame, + libxml2, + ffmpeg, + vlc, + xdg-utils, + xdotool, + which, -, jackSupport ? stdenv.hostPlatform.isLinux -, jackLibrary -, pulseaudioSupport ? config.pulseaudio or stdenv.hostPlatform.isLinux -, libpulseaudio + jackSupport ? stdenv.hostPlatform.isLinux, + jackLibrary, + pulseaudioSupport ? config.pulseaudio or stdenv.hostPlatform.isLinux, + libpulseaudio, }: let - url_for_platform = version: arch: if stdenv.hostPlatform.isDarwin - then "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_universal.dmg" - else "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${arch}.tar.xz"; + url_for_platform = + version: arch: + if stdenv.hostPlatform.isDarwin then + "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${ + builtins.replaceStrings [ "." ] [ "" ] version + }_universal.dmg" + else + "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${ + builtins.replaceStrings [ "." ] [ "" ] version + }_linux_${arch}.tar.xz"; in stdenv.mkDerivation rec { pname = "reaper"; - version = "7.28"; + version = "7.29"; src = fetchurl { url = url_for_platform version stdenv.hostPlatform.qemuArch; - hash = if stdenv.hostPlatform.isDarwin then "sha256-bhrBIXrE3gaAjpqrOtFK9Awb3rKMIckYhpQKVioBbqY=" else { - x86_64-linux = "sha256-HTxuu1IfjDYnCRksW5tjbOLIFz150wBwyJKCkMATlAk="; - aarch64-linux = "sha256-3jH6UwQefhLyymGltw7+//tUaO0V/3VySWuDsS3cqSo="; - }.${stdenv.hostPlatform.system}; + hash = + if stdenv.hostPlatform.isDarwin then + "sha256-b1Gb5guaFyWrt9KEwptuXGvfrJAvgnFEl8QuwSufktE=" + else + { + x86_64-linux = "sha256-uFK8Y36pYTDK3foCKH9kiq3u1MTir2nNM5KrDwIHEm0="; + aarch64-linux = "sha256-KZTUeEtyAVwIFTmclYv4GcGJ2WXukEF0/mfYmmBPfz0="; + } + .${stdenv.hostPlatform.system}; }; - nativeBuildInputs = [ - makeWrapper - ] ++ lib.optionals stdenv.hostPlatform.isLinux [ - which - autoPatchelfHook - xdg-utils # Required for desktop integration - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ - undmg - ]; + nativeBuildInputs = + [ + makeWrapper + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + which + autoPatchelfHook + xdg-utils # Required for desktop integration + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + undmg + ]; sourceRoot = lib.optionalString stdenv.hostPlatform.isDarwin "Reaper.app"; - buildInputs = [ - (lib.getLib stdenv.cc.cc) # reaper and libSwell need libstdc++.so.6 - ] ++ lib.optionals stdenv.hostPlatform.isLinux [ - gtk3 - alsa-lib - ]; + buildInputs = + [ + (lib.getLib stdenv.cc.cc) # reaper and libSwell need libstdc++.so.6 + ] + ++ lib.optionals stdenv.hostPlatform.isLinux [ + gtk3 + alsa-lib + ]; - runtimeDependencies = lib.optionals stdenv.hostPlatform.isLinux [ - gtk3 # libSwell needs libgdk-3.so.0 - ] - ++ lib.optional jackSupport jackLibrary - ++ lib.optional pulseaudioSupport libpulseaudio; + runtimeDependencies = + lib.optionals stdenv.hostPlatform.isLinux [ + gtk3 # libSwell needs libgdk-3.so.0 + ] + ++ lib.optional jackSupport jackLibrary + ++ lib.optional pulseaudioSupport libpulseaudio; dontBuild = true; - installPhase = if stdenv.hostPlatform.isDarwin then '' - runHook preInstall - mkdir -p "$out/Applications/Reaper.app" - cp -r * "$out/Applications/Reaper.app/" - makeWrapper "$out/Applications/Reaper.app/Contents/MacOS/REAPER" "$out/bin/reaper" - runHook postInstall - '' else '' - runHook preInstall + installPhase = + if stdenv.hostPlatform.isDarwin then + '' + runHook preInstall + mkdir -p "$out/Applications/Reaper.app" + cp -r * "$out/Applications/Reaper.app/" + makeWrapper "$out/Applications/Reaper.app/Contents/MacOS/REAPER" "$out/bin/reaper" + runHook postInstall + '' + else + '' + runHook preInstall - HOME="$out/share" XDG_DATA_HOME="$out/share" ./install-reaper.sh \ - --install $out/opt \ - --integrate-user-desktop - rm $out/opt/REAPER/uninstall-reaper.sh + HOME="$out/share" XDG_DATA_HOME="$out/share" ./install-reaper.sh \ + --install $out/opt \ + --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. - # Note that libcurl and libxml2 are needed for ReaPack to run. - wrapProgram $out/opt/REAPER/reaper \ - --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ curl lame libxml2 ffmpeg vlc xdotool stdenv.cc.cc ]}" + # 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. + # Note that libcurl and libxml2 are needed for ReaPack to run. + wrapProgram $out/opt/REAPER/reaper \ + --prefix LD_LIBRARY_PATH : "${ + lib.makeLibraryPath [ + curl + lame + libxml2 + ffmpeg + vlc + xdotool + stdenv.cc.cc + ] + }" - mkdir $out/bin - ln -s $out/opt/REAPER/reaper $out/bin/ + mkdir $out/bin + ln -s $out/opt/REAPER/reaper $out/bin/ - runHook postInstall - ''; + runHook postInstall + ''; passthru.updateScript = ./updater.sh; @@ -103,7 +138,18 @@ stdenv.mkDerivation rec { homepage = "https://www.reaper.fm/"; sourceProvenance = with sourceTypes; [ binaryNativeCode ]; license = licenses.unfree; - platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; - maintainers = with maintainers; [ ilian orivej uniquepointer viraptor ]; + platforms = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + maintainers = with maintainers; [ + atinba + ilian + orivej + uniquepointer + viraptor + ]; }; } diff --git a/pkgs/applications/audio/reaper/updater.sh b/pkgs/applications/audio/reaper/updater.sh index ef070c38aa22..a47df805345f 100755 --- a/pkgs/applications/audio/reaper/updater.sh +++ b/pkgs/applications/audio/reaper/updater.sh @@ -8,14 +8,14 @@ reaper_ver=$(curl -Ls https://www.reaper.fm/download.php | grep -o 'Version [0-9 function set_hash_for_linux() { local arch=$1 pkg_hash=$(nix-prefetch-url https://www.reaper.fm/files/${reaper_ver%.*}.x/reaper${reaper_ver/./}_linux_$arch.tar.xz) - pkg_hash=$(nix hash to-sri "sha256:$pkg_hash") + pkg_hash=$(nix hash convert "sha256:$pkg_hash") update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-linux --ignore-same-version } function set_hash_for_darwin() { local arch=$1 pkg_hash=$(nix-prefetch-url https://www.reaper.fm/files/${reaper_ver%.*}.x/reaper${reaper_ver/./}_universal.dmg) - pkg_hash=$(nix hash to-sri "sha256:$pkg_hash") + pkg_hash=$(nix hash convert "sha256:$pkg_hash") update-source-version reaper "${reaper_ver}" "$pkg_hash" --system=$arch-darwin --ignore-same-version }