Merge pull request #138859 from astro/bespokesynth

authored by

Sandro and committed by
GitHub
542b6b6a 73c86239

+115
+113
pkgs/applications/audio/bespokesynth/default.nix
··· 1 + { lib, stdenv, fetchFromGitHub, pkg-config, fetchzip 2 + , libjack2, alsa-lib, freetype, libX11, libXrandr, libXinerama, libXext, libXcursor 3 + , libGL, python3, ncurses, libusb1 4 + , gtk3, webkitgtk, curl, xvfb-run, makeWrapper 5 + # "Debug", or "Release" 6 + , buildType ? "Release" 7 + }: 8 + 9 + let 10 + projucer = stdenv.mkDerivation rec { 11 + pname = "projucer"; 12 + version = "5.4.7"; 13 + 14 + src = fetchFromGitHub { 15 + owner = "juce-framework"; 16 + repo = "JUCE"; 17 + rev = version; 18 + sha256= "0qpiqfwwpcghk7ij6w4vy9ywr3ryg7ppg77bmd7783kxg6zbhj8h"; 19 + }; 20 + 21 + nativeBuildInputs = [ pkg-config ]; 22 + buildInputs = [ 23 + freetype libX11 libXrandr libXinerama libXext gtk3 webkitgtk 24 + libjack2 curl 25 + ]; 26 + preBuild = '' 27 + cd extras/Projucer/Builds/LinuxMakefile 28 + ''; 29 + makeFlags = [ "CONFIG=${buildType}" ]; 30 + enableParallelBuilding = true; 31 + 32 + installPhase = '' 33 + mkdir -p $out/bin 34 + cp -a build/Projucer $out/bin/Projucer 35 + ''; 36 + }; 37 + 38 + # equal to vst-sdk in ../oxefmsynth/default.nix 39 + vst-sdk = stdenv.mkDerivation rec { 40 + name = "vstsdk3610_11_06_2018_build_37"; 41 + src = fetchzip { 42 + url = "https://web.archive.org/web/20181016150224if_/https://download.steinberg.net/sdk_downloads/${name}.zip"; 43 + sha256 = "0da16iwac590wphz2sm5afrfj42jrsnkr1bxcy93lj7a369ildkj"; 44 + }; 45 + installPhase = '' 46 + cp -r . $out 47 + ''; 48 + }; 49 + 50 + in 51 + stdenv.mkDerivation rec { 52 + pname = "bespokesynth"; 53 + version = "1.0.0"; 54 + 55 + src = fetchFromGitHub { 56 + owner = "awwbees"; 57 + repo = pname; 58 + rev = "v${version}"; 59 + sha256 = "04b2m40jszphslkd4850jcb8qwls392lwy3lc6vlj01h4izvapqk"; 60 + }; 61 + 62 + configurePhase = '' 63 + runHook preConfigure 64 + 65 + export HOME=$(mktemp -d) 66 + xvfb-run sh -e <<EOF 67 + ${projucer}/bin/Projucer --set-global-search-path linux defaultJuceModulePath ${projucer.src}/modules 68 + ${projucer}/bin/Projucer --resave BespokeSynth.jucer 69 + EOF 70 + 71 + runHook postConfigure 72 + ''; 73 + CFLAGS = "-I${vst-sdk}/VST2_SDK"; 74 + 75 + nativeBuildInputs = [ xvfb-run pkg-config python3 makeWrapper ]; 76 + 77 + buildInputs = [ 78 + libX11 libXrandr libXinerama libXext libXcursor freetype libGL 79 + ncurses libusb1 80 + alsa-lib libjack2 81 + ]; 82 + 83 + preBuild = '' 84 + cd Builds/LinuxMakefile 85 + ''; 86 + makeFlags = [ "CONFIG=${buildType}" ]; 87 + enableParallelBuilding = true; 88 + 89 + installPhase = '' 90 + runHook preInstall 91 + 92 + mkdir -p $out/bin $out/share/bespokesynth $out/share/applications $out/share/icons/hicolor/512x512/apps 93 + cp build/BespokeSynth $out/bin/ 94 + cp -ar ../MacOSX/build/Release/resource $out/share/bespokesynth/ 95 + wrapProgram $out/bin/BespokeSynth \ 96 + --run "cd $out/share/bespokesynth" 97 + 98 + mkdir -p $out/share/applications/ $out/share/icons/hicolor/512x512/apps/ 99 + cp ../../bespoke_icon.png $out/share/icons/hicolor/512x512/apps/ 100 + substitute ../../BespokeSynth.desktop $out/share/applications/BespokseSynth.desktop \ 101 + --replace "/usr/bin/" "" 102 + 103 + runHook postInstall 104 + ''; 105 + 106 + meta = with lib; { 107 + description = "Software modular synth with controllers support, scripting and VST"; 108 + homepage = "https://github.com/awwbees/BespokeSynth"; 109 + license = licenses.gpl3Plus; 110 + maintainers = with maintainers; [ astro ]; 111 + platforms = platforms.all; 112 + }; 113 + }
+2
pkgs/top-level/all-packages.nix
··· 23467 23467 23468 23468 berry = callPackage ../applications/window-managers/berry { }; 23469 23469 23470 + bespokesynth = callPackage ../applications/audio/bespokesynth { }; 23471 + 23470 23472 bevelbar = callPackage ../applications/window-managers/bevelbar { }; 23471 23473 23472 23474 bibletime = libsForQt5.callPackage ../applications/misc/bibletime { };