about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/maintainers.nix1
-rw-r--r--pkgs/applications/audio/sonic-pi/default.nix60
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 63 insertions, 0 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 14a7de594aa2..1dc50241f8a1 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -228,6 +228,7 @@
   pjones = "Peter Jones <pjones@devalot.com>";
   pkmx = "Chih-Mao Chen <pkmx.tw@gmail.com>";
   plcplc = "Philip Lykke Carlsen <plcplc@gmail.com>";
+  Phlogistique = "NoƩ Rubinstein <noe.rubinstein@gmail.com>";
   pmahoney = "Patrick Mahoney <pat@polycrystal.org>";
   pmiddend = "Philipp Middendorf <pmidden@secure.mailbox.org>";
   prikhi = "Pavan Rikhi <pavan.rikhi@gmail.com>";
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 1b206ad644c0..c023dcce25b4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12907,6 +12907,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;
   };