From 7714c4b411ee524992e08826ece8ab9a3428145e Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Sun, 17 Aug 2025 10:25:09 +0300 Subject: [PATCH 1/4] odin2: add updateScript --- pkgs/by-name/od/odin2/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/od/odin2/package.nix b/pkgs/by-name/od/odin2/package.nix index 272dddea2f06..b43d899d8b77 100644 --- a/pkgs/by-name/od/odin2/package.nix +++ b/pkgs/by-name/od/odin2/package.nix @@ -15,6 +15,7 @@ libXrandr, libGL, gcc-unwrapped, + nix-update-script, }: stdenv.mkDerivation rec { @@ -78,6 +79,8 @@ stdenv.mkDerivation rec { cp -r CLAP/Odin2.clap $out/lib/clap ''; + passthru.updateScript = nix-update-script { }; + meta = with lib; { description = "Odin 2 Synthesizer Plugin"; homepage = "https://thewavewarden.com/odin2"; From 70da9f8e7f92102372ad345b648b0bebe8e7720a Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Sun, 17 Aug 2025 11:59:50 +0300 Subject: [PATCH 2/4] odin2: use `finalAttrs` instead of `rec` --- pkgs/by-name/od/odin2/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/od/odin2/package.nix b/pkgs/by-name/od/odin2/package.nix index b43d899d8b77..602d7ce38962 100644 --- a/pkgs/by-name/od/odin2/package.nix +++ b/pkgs/by-name/od/odin2/package.nix @@ -18,14 +18,14 @@ nix-update-script, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "odin2"; version = "2.3.4"; src = fetchFromGitHub { owner = "TheWaveWarden"; repo = "odin2"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; fetchSubmodules = true; hash = "sha256-N96Nb7G6hqfh8DyMtHbttl/fRZUkS8f2KfPSqeMAhHY="; }; @@ -89,4 +89,4 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ magnetophon ]; mainProgram = "Odin2"; }; -} +}) From 95c35d1b35147f0973f9139046e4385359a7fda8 Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Sun, 17 Aug 2025 10:25:19 +0300 Subject: [PATCH 3/4] odin2: 2.3.4 -> 2.4.1 --- pkgs/by-name/od/odin2/package.nix | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkgs/by-name/od/odin2/package.nix b/pkgs/by-name/od/odin2/package.nix index 602d7ce38962..b3f080ea8eb2 100644 --- a/pkgs/by-name/od/odin2/package.nix +++ b/pkgs/by-name/od/odin2/package.nix @@ -20,21 +20,16 @@ stdenv.mkDerivation (finalAttrs: { pname = "odin2"; - version = "2.3.4"; + version = "2.4.1"; src = fetchFromGitHub { owner = "TheWaveWarden"; repo = "odin2"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; - hash = "sha256-N96Nb7G6hqfh8DyMtHbttl/fRZUkS8f2KfPSqeMAhHY="; + hash = "sha256-j/rZvBNBTDo2vwESXbGIXR89PHOI1HK8hvzV7y6dJHI="; }; - postPatch = '' - sed '1i#include ' -i \ - libs/JUCELV2/modules/juce_gui_basics/windows/juce_ComponentPeer.h # gcc12 - ''; - nativeBuildInputs = [ cmake pkg-config @@ -64,6 +59,11 @@ stdenv.mkDerivation (finalAttrs: { ] ); + # JUCE wants to write to $HOME/.{lv2,vst3} + preConfigure = '' + export HOME="$TMPDIR" + ''; + cmakeFlags = [ "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar" "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib" From db2b914c5650141730db3cf35029f8c9edc42202 Mon Sep 17 00:00:00 2001 From: Olli Helenius Date: Sun, 17 Aug 2025 11:11:50 +0300 Subject: [PATCH 4/4] odin2: add a desktop item --- pkgs/by-name/od/odin2/package.nix | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/od/odin2/package.nix b/pkgs/by-name/od/odin2/package.nix index b3f080ea8eb2..9209c499992d 100644 --- a/pkgs/by-name/od/odin2/package.nix +++ b/pkgs/by-name/od/odin2/package.nix @@ -15,6 +15,8 @@ libXrandr, libGL, gcc-unwrapped, + copyDesktopItems, + makeDesktopItem, nix-update-script, }: @@ -33,6 +35,7 @@ stdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake pkg-config + copyDesktopItems ]; buildInputs = [ @@ -71,14 +74,35 @@ stdenv.mkDerivation (finalAttrs: { ]; installPhase = '' - mkdir -p $out/bin $out/lib/vst3 $out/lib/lv2 $out/lib/clap + mkdir -p $out/bin $out/lib/vst3 $out/lib/lv2 $out/lib/clap $out/share/icons/hicolor/512x512/apps cd Odin2_artefacts/Release cp Standalone/Odin2 $out/bin cp -r VST3/Odin2.vst3 $out/lib/vst3 cp -r LV2/Odin2.lv2 $out/lib/lv2 cp -r CLAP/Odin2.clap $out/lib/clap + # There’s no application icon, so the vendor’s logo will have to do. + cp $src/manual/graphics/logo.png $out/share/icons/hicolor/512x512/apps/odin2.png + copyDesktopItems ''; + desktopItems = [ + (makeDesktopItem { + name = "Odin2"; + desktopName = "Odin 2"; + comment = "Odin 2 Free Synthesizer"; + icon = "odin2"; + startupNotify = true; + categories = [ + "AudioVideo" + "Audio" + "Midi" + "Music" + ]; + dbusActivatable = false; + exec = "Odin2"; + }) + ]; + passthru.updateScript = nix-update-script { }; meta = with lib; {