diff --git a/lib/maintainers.nix b/lib/maintainers.nix index 5a49da4d6282..6665539b0e80 100644 --- a/lib/maintainers.nix +++ b/lib/maintainers.nix @@ -229,6 +229,7 @@ pjones = "Peter Jones "; pkmx = "Chih-Mao Chen "; plcplc = "Philip Lykke Carlsen "; + Phlogistique = "NoƩ Rubinstein "; pmahoney = "Patrick Mahoney "; pmiddend = "Philipp Middendorf "; prikhi = "Pavan Rikhi "; diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix new file mode 100644 index 000000000000..ce5844ca7f12 --- /dev/null +++ b/pkgs/applications/audio/sonic-pi/default.nix @@ -0,0 +1,60 @@ +{ stdenv +, fetchFromGitHub +, qscintilla +, supercollider +, ruby +, cmake +, pkgconfig +, qt48Full +, bash +, makeWrapper +}: + +stdenv.mkDerivation rec { + version = "2.8.0"; + name = "sonic-pi-${version}"; + + src = fetchFromGitHub { + owner = "samaaron"; + repo = "sonic-pi"; + rev = "v${version}"; + sha256 = "1yyavgazb6ar7xnmjx460s9p8nh70klaja2yb20nci15k8vngq9h"; + }; + + buildInputs = [ + qscintilla + supercollider + ruby + qt48Full + cmake + pkgconfig + bash + makeWrapper + ]; + + meta = { + homepage = http://sonic-pi.net/; + description = "Free live coding synth for everyone originally designed to support computing and music lessons within schools"; + license = stdenv.lib.licenses.mit; + maintainers = [ stdenv.lib.maintainers.Phlogistique ]; + platforms = stdenv.lib.platforms.linux; + }; + + dontUseCmakeConfigure = true; + + buildPhase = '' + pushd app/server/bin + ${ruby}/bin/ruby compile-extensions.rb + popd + + pushd app/gui/qt + ${bash}/bin/bash rp-build-app + popd + ''; + + installPhase = '' + cp -r . $out + wrapProgram $out/bin/sonic-pi --prefix PATH : \ + ${ruby}/bin:${bash}/bin + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f6ff6c264934..254f77d69dd3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12951,6 +12951,8 @@ let viber = callPackage ../applications/networking/instant-messengers/viber { }; + sonic-pi = callPackage ../applications/audio/sonic-pi { }; + st = callPackage ../applications/misc/st { conf = config.st.conf or null; };