From 4bc516aa540e85ff8e0fa2c88245e4c870b1faf3 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Fri, 4 Mar 2016 14:19:44 +0000 Subject: sonic-pi: 2.8.0 -> 2.9.0 Fixes compilation and path issues. The executable still segfaults after boot though. --- pkgs/applications/audio/sonic-pi/default.nix | 29 +++++++++++------ .../audio/sonic-pi/fixed-prefixes.patch | 36 ++++++++++++++++++++++ 2 files changed, 55 insertions(+), 10 deletions(-) create mode 100644 pkgs/applications/audio/sonic-pi/fixed-prefixes.patch (limited to 'pkgs/applications/audio/sonic-pi') diff --git a/pkgs/applications/audio/sonic-pi/default.nix b/pkgs/applications/audio/sonic-pi/default.nix index ce5844ca7f124..3c7be51554d8d 100644 --- a/pkgs/applications/audio/sonic-pi/default.nix +++ b/pkgs/applications/audio/sonic-pi/default.nix @@ -11,25 +11,25 @@ }: stdenv.mkDerivation rec { - version = "2.8.0"; + version = "2.9.0"; name = "sonic-pi-${version}"; src = fetchFromGitHub { owner = "samaaron"; repo = "sonic-pi"; rev = "v${version}"; - sha256 = "1yyavgazb6ar7xnmjx460s9p8nh70klaja2yb20nci15k8vngq9h"; + sha256 = "19db5dxrf6h1v2w3frds5g90nb6izd9ppp7cs2xi6i0m67l6jrwb"; }; buildInputs = [ - qscintilla - supercollider - ruby - qt48Full - cmake - pkgconfig bash + cmake makeWrapper + pkgconfig + qscintilla + qt48Full + ruby + supercollider ]; meta = { @@ -42,13 +42,22 @@ stdenv.mkDerivation rec { dontUseCmakeConfigure = true; + patches = [ ./fixed-prefixes.patch ]; + + preConfigure = '' + patchShebangs . + substituteInPlace app/gui/qt/mainwindow.cpp \ + --subst-var-by ruby "${ruby}/bin/ruby" \ + --subst-var out + ''; + buildPhase = '' pushd app/server/bin - ${ruby}/bin/ruby compile-extensions.rb + ./compile-extensions.rb popd pushd app/gui/qt - ${bash}/bin/bash rp-build-app + ./rp-build-app popd ''; diff --git a/pkgs/applications/audio/sonic-pi/fixed-prefixes.patch b/pkgs/applications/audio/sonic-pi/fixed-prefixes.patch new file mode 100644 index 0000000000000..7b045a41cba1e --- /dev/null +++ b/pkgs/applications/audio/sonic-pi/fixed-prefixes.patch @@ -0,0 +1,36 @@ +diff --git a/app/gui/qt/mainwindow.cpp b/app/gui/qt/mainwindow.cpp +index 0af6cf7..97c17ad 100644 +--- a/app/gui/qt/mainwindow.cpp ++++ b/app/gui/qt/mainwindow.cpp +@@ -677,28 +677,9 @@ void MainWindow::startServer(){ + + serverProcess = new QProcess(); + +- QString root = rootPath(); +- +- #if defined(Q_OS_WIN) +- QString prg_path = root + "/app/server/native/windows/ruby/bin/ruby.exe"; +- QString prg_arg = root + "/app/server/bin/sonic-pi-server.rb"; +- sample_path = root + "/etc/samples"; +- #elif defined(Q_OS_MAC) +- QString prg_path = root + "/server/native/osx/ruby/bin/ruby"; +- QString prg_arg = root + "/server/bin/sonic-pi-server.rb"; +- sample_path = root + "/etc/samples"; +- #else +- //assuming Raspberry Pi +- QString prg_path = root + "/app/server/native/raspberry/ruby/bin/ruby"; +- QFile file(prg_path); +- if(!file.exists()) { +- // use system ruby if bundled ruby doesn't exist +- prg_path = "/usr/bin/ruby"; +- } +- +- QString prg_arg = root + "/app/server/bin/sonic-pi-server.rb"; +- sample_path = root + "/etc/samples"; +- #endif ++ QString prg_path = "@ruby@"; ++ QString prg_arg = "@out@/app/server/bin/sonic-pi-server.rb"; ++ sample_path = "@out@/etc/samples"; + + prg_path = QDir::toNativeSeparators(prg_path); + prg_arg = QDir::toNativeSeparators(prg_arg); -- cgit 1.4.1