{ lib, stdenv, fetchFromGitHub, fetchzip, pkg-config, wine64, enableJackAssWine64 ? false }: let # equal to vst-sdk in ../oxefmsynth/default.nix vst-sdk = stdenv.mkDerivation (finalAttrs: { name = "vstsdk3610_11_06_2018_build_37"; src = fetchzip { url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${finalAttrs.name}.zip"; hash = "sha256-cjYakxnqSDqSZ32FPK3OUhDpslOlavHh5SAVpng0QTU="; }; installPhase = '' runHook preInstall cp -r . $out runHook postInstall ''; }); in stdenv.mkDerivation (finalAttrs: { pname = "jackass"; version = "1.1"; src = fetchFromGitHub { owner = "falkTX"; repo = "JackAss"; rev = "v${finalAttrs.version}"; hash = "sha256-6mqG4H6iGvDbGnmMeP/vcvSnvUGClZUl06XpKovt50E="; }; postPatch = '' cp -r ${vst-sdk}/VST2_SDK/{public.sdk,pluginterfaces} vstsdk2.4 ''; nativeBuildInputs = [ pkg-config ] ++ lib.optionals enableJackAssWine64 [ wine64 ]; makeFlags = [ "linux" ] ++ lib.optionals enableJackAssWine64 [ "wine64" ]; installPhase = '' runHook preInstall install_dir="$out/lib/vst" mkdir -p $install_dir for file in JackAss.so JackAssWine64.dll; do if test -f "$file"; then cp $file $install_dir fi done runHook postInstall ''; enableParallelBuilding = true; meta = with lib; { description = "JackAss is a VST plugin that provides JACK-MIDI support for VST hosts."; longDescription = '' Simply load the plugin in your favourite host to get a JACK-MIDI port. Optionally includes a special Wine build for running in Wine applications. Set enableJackAssWine64 to true to enable this output. ''; homepage = "https://github.com/falkTX/JackAss"; maintainers = with maintainers; [ PowerUser64 ]; license = with licenses; [ mit unfree ]; platforms = platforms.linux; }; })