Unverified Commit a81d5042 authored by Yohann Boniface's avatar Yohann Boniface Committed by GitHub
Browse files

odin2: 2.3.4 -> 2.4.1 (#434419)

parents b4de6628 db2b914c
Loading
Loading
Loading
Loading
+38 −11
Original line number Diff line number Diff line
@@ -15,28 +15,27 @@
  libXrandr,
  libGL,
  gcc-unwrapped,
  copyDesktopItems,
  makeDesktopItem,
  nix-update-script,
}:

stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
  pname = "odin2";
  version = "2.3.4";
  version = "2.4.1";

  src = fetchFromGitHub {
    owner = "TheWaveWarden";
    repo = "odin2";
    tag = "v${version}";
    tag = "v${finalAttrs.version}";
    fetchSubmodules = true;
    hash = "sha256-N96Nb7G6hqfh8DyMtHbttl/fRZUkS8f2KfPSqeMAhHY=";
    hash = "sha256-j/rZvBNBTDo2vwESXbGIXR89PHOI1HK8hvzV7y6dJHI=";
  };

  postPatch = ''
    sed '1i#include <utility>' -i \
      libs/JUCELV2/modules/juce_gui_basics/windows/juce_ComponentPeer.h # gcc12
  '';

  nativeBuildInputs = [
    cmake
    pkg-config
    copyDesktopItems
  ];

  buildInputs = [
@@ -63,6 +62,11 @@ stdenv.mkDerivation rec {
    ]
  );

  # 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"
@@ -70,14 +74,37 @@ stdenv.mkDerivation rec {
  ];

  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; {
    description = "Odin 2 Synthesizer Plugin";
    homepage = "https://thewavewarden.com/odin2";
@@ -86,4 +113,4 @@ stdenv.mkDerivation rec {
    maintainers = with maintainers; [ magnetophon ];
    mainProgram = "Odin2";
  };
}
})