[arch-commits] Commit in sonic-pi/trunk (6 files)

David Runge dvzrv at archlinux.org
Sun Mar 8 22:53:49 UTC 2020


    Date: Sunday, March 8, 2020 @ 22:53:49
  Author: dvzrv
Revision: 592635

upgpkg: sonic-pi 3.2.0-1: Upgrading to 3.2.0. Removing boost-libs from depends, as only boost headers are required during build time. Adding sox to optdepends, as it is required for additional effects.
Revamping the patches for GUI and ruby path modifications to stay FHS compliant. Adding a patch to devendor qscintilla-qt5, which was vendored in the new setup using cmake for the Qt GUI.
Adding TODOs and NOTES. Running encapsulated build commands in subshells in build() instead of hopping dirs.
Cleaning up and extending the various installations in package().
NOTE: This version has issues on exit of sonic-pi. Parts of the ruby and erlang components won't quit and scsynth neither.

Added:
  sonic-pi/trunk/sonic-pi-3.2.0-devendor_qscintilla-qt5.patch
  sonic-pi/trunk/sonic-pi-3.2.0-gui_paths.patch
  sonic-pi/trunk/sonic-pi-3.2.0-ruby_paths.patch
Modified:
  sonic-pi/trunk/PKGBUILD
Deleted:
  sonic-pi/trunk/fix-paths-in-gui.diff
  sonic-pi/trunk/fix-ruby-paths.diff

----------------------------------------------+
 PKGBUILD                                     |  117 ++++++++++++++-----------
 fix-paths-in-gui.diff                        |   62 -------------
 fix-ruby-paths.diff                          |   96 --------------------
 sonic-pi-3.2.0-devendor_qscintilla-qt5.patch |   23 ++++
 sonic-pi-3.2.0-gui_paths.patch               |   76 ++++++++++++++++
 sonic-pi-3.2.0-ruby_paths.patch              |  111 +++++++++++++++++++++++
 6 files changed, 278 insertions(+), 207 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2020-03-08 22:53:07 UTC (rev 592634)
+++ PKGBUILD	2020-03-08 22:53:49 UTC (rev 592635)
@@ -1,25 +1,29 @@
 # Maintainer: David Runge <dvzrv at archlinux.org>
+
 pkgname=sonic-pi
-pkgver=3.1.0
-pkgrel=8
+pkgver=3.2.0
+pkgrel=1
 pkgdesc="The Live Coding Music Synth for Everyone"
 arch=('x86_64')
 url="https://sonic-pi.net/"
 license=('CCPL' 'LGPL2.1' 'GPL2' 'GPL3' 'MIT')
 groups=('pro-audio')
-depends=('aubio' 'boost-libs' 'osmid' 'qscintilla-qt5' 'qwt'
-'ruby-activesupport' 'ruby-ffi' 'ruby-i18n' 'ruby-kramdown' 'ruby-minitest'
-'ruby-mocha' 'ruby-multi_json' 'ruby-rouge' 'ruby-rugged' 'ruby-sys-proctable'
-'sc3-plugins' 'supercollider')
+depends=('aubio' 'gcc-libs' 'glibc' 'osmid' 'qt5-base' 'qscintilla-qt5' 'qwt'
+'ruby' 'ruby-activesupport' 'ruby-ffi' 'ruby-i18n' 'ruby-kramdown'
+'ruby-minitest' 'ruby-mocha' 'ruby-multi_json' 'ruby-rouge' 'ruby-rugged'
+'ruby-sys-proctable' 'sc3-plugins' 'supercollider')
 makedepends=('boost' 'cmake' 'erlang-nox' 'gendesk' 'lua' 'qt5-tools'
-'wkhtmltopdf')
+'ruby-bundler' 'wkhtmltopdf')
 checkdepends=('ruby-rake')
+optdepends=('sox: for further effects')
 source=("$pkgname-$pkgver.tar.gz::https://github.com/samaaron/${pkgname}/archive/v${pkgver}.tar.gz"
-        "fix-paths-in-gui.diff"
-        "fix-ruby-paths.diff")
-sha512sums=('45373d3e673bc2f45bf5ccea31f6cf5e2003c9bdfc4645dec4b9fec391cb28b9e0b0823a98e9690928e116b8c40f96596bd1c8f5aefbf4f3e43e6c30ab76d41f'
-            'ea827c451a42ea12b7a1ced04978fa3a3eb5368b9802c982a0f815159d5591bedc4dc5b9eed89df3957087352bcb5f778e054abd2cb38cc1e57ab538e73b97f3'
-            '245418d7d3d145a77423350afd2598865395ed5e479fa13922320e6d53c849b01e99c71c460e384f69a8a70d6087899d9e26dcd06d68a13980fc2d6a543b2644')
+        "${pkgname}-3.2.0-gui_paths.patch"
+        "${pkgname}-3.2.0-devendor_qscintilla-qt5.patch"
+        "${pkgname}-3.2.0-ruby_paths.patch")
+sha512sums=('55c5ee2d42cf5988a2cbcad3429a595e0376bde0a96b71dccd6753fe27a51d439057b0de3e0d1cfce10318803d4c3869da00254db1312fbaaafc9c6b502af148'
+            'e530cc13cb6674dca2ace2a8da566ce28263a15197cf7fccd5d3e58b676c08ce860bc6264a95d26569ff1f923020a40ece1e05841c955c5db16e61c30938f1c0'
+            'fbe196bc332a7a04e8d5097204a13626e7aba3a70715d2a1676c0b1f37f56da427d0d5b417f92c27e64f91a03dd9d4335f65f26f9e9d14e4076d496c94c949af'
+            'cd203e120e052ac06f08b4af082a95fddcd6a6a62386ed9a068f1b48123de02fa323fcf1d6e4429c6d55d980bb894d67eeafaf47fd31ab43dc70b13016914b9d')
 
 prepare() {
   cd "$pkgname-$pkgver"
@@ -28,10 +32,16 @@
           --pkgdesc "${pkgdesc}" \
           --name sonic-pi \
           --categories "AudioVideo;Audio"
-  sed -e 's/lqt5scintilla2/lqscintilla2_qt5/g' -i app/gui/qt/SonicPi.pro
   rm -rvf app/server/native
-  # TODO: patch app/gui/qt/mainwindow.cpp to set path to external components in /usr/{lib,share}/sonic-pi
-  patch -Np1 -i ../fix-paths-in-gui.diff
+  # patch app/gui/qt/{model/sonicpitheme,mainwindow}.cpp to set path to
+  # external components in /usr/{lib,share}/sonic-pi
+  patch -Np1 -i "../${pkgname}-3.2.0-gui_paths.patch"
+  # devendor qscintilla-qt5: https://github.com/samaaron/sonic-pi/issues/2278
+  patch -Np1 -i "../${pkgname}-3.2.0-devendor_qscintilla-qt5.patch"
+  # TODO: devendor boost from GUI components (only headers required during
+  # build time)
+
+
   #TODO: devendor ruby-ast
   #TODO: devendor ruby-atomic (bin)
   #TODO: devendor ruby-benchmark-ips
@@ -53,43 +63,56 @@
   #TODO: devendor ruby-thread_safe
   #TODO: devendor ruby-wavefile
   #TODO: devendor ruby-websocket
-  # devendor ffi, ruby-prof, rugged
+
+  # devendor gems requiring compilation:
+  # ffi, ruby-prof, rugged
   sed -e '/rugged/d' \
       -e '/ffi/d' \
       -e '/ruby-prof/d' \
       -i app/server/ruby/bin/compile-extensions.rb
+  # remove unrequired gems, so we don't create any doc for them
   rm -rvf app/server/ruby/vendor/{activesupport,ffi,i18n,kramdown,minitest,mocha,multi_json,rouge,rugged,sys-proctable}*
-  # remove unrequired gems, so we don't create any doc for them
   rm -rvf app/server/ruby/vendor/{narray,ruby-coreaudio,ruby-prof}*
-  # remove warnings as errors
-  sed -e 's/\-Werror//g' -i app/gui/qt/SonicPi.pro
 }
 
 build() {
   cd "$pkgname-$pkgver"
 
-  # OSC and pi_server
-  cd app/server/erlang
-  erlc {osc,pi_server}.erl
+  (
+    # OSC and pi_server
+    cd app/server/erlang
+    erlc {osc,pi_server}.erl
+  )
 
-  cd "${srcdir}/$pkgname-$pkgver"
+  (
+    # ruby extensions
+    cd app/server/ruby/bin
+    ./compile-extensions.rb
+    ./i18n-tool.rb -t
+  )
 
-  # ruby extensions
-  cd app/gui/qt/
-  ../../server/ruby/bin/compile-extensions.rb
-  ../../server/ruby/bin/i18n-tool.rb -t
-  # help template
-  cp -vf ruby_help.{tmpl,h}
-  ../../server/ruby/bin/qt-doc.rb -o ruby_help.h
+  (
+    # GUI
+    cd app/gui/qt/
+    # help template
+    cp -vf utils/ruby_help.{tmpl,h}
+    ../../server/ruby/bin/qt-doc.rb -o utils/ruby_help.h
+    # generating translations
+    lrelease lang/*.ts
+    # compiling GUI
+    cmake -DCMAKE_INSTALL_PREFIX=/usr \
+          -B build \
+          -S .
+    make VERBOSE=1 -C build
+  )
 
-  # GUI
-  lrelease SonicPi.pro
-  qmake-qt5 SonicPi.pro
-  make
-
-  cd "${srcdir}/$pkgname-$pkgver"
-  # TODO: patch app/server/ruby/lib/sonicpi/util.rb to set proper paths to external components
-  patch -Np1 -i ../fix-ruby-paths.diff
+  (
+    # patch app/server/ruby/lib/sonicpi/util.rb to set proper paths to external components
+    # NOTE: this can only be done after running
+    # app/server/ruby/bin/compile-extensions.rb, as ruby-wavefile uses a
+    # hardcoded location of a file (move to prepare() after devendoring more ruby gems)
+    patch -Np1 -i "../${pkgname}-3.2.0-ruby_paths.patch"
+  )
 }
 
 ## tests fail: https://github.com/samaaron/sonic-pi/issues/1865
@@ -102,8 +125,7 @@
 package() {
   cd "$pkgname-$pkgver"
   # GUI executable
-  install -vDm 755 "app/gui/qt/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
-
+  install -vDm 755 "app/gui/qt/build/${pkgname}" "${pkgdir}/usr/bin/${pkgname}"
   # book
   install -vDm 644 app/gui/qt/book/*.html \
     -t "${pkgdir}/usr/share/${pkgname}/book"
@@ -147,13 +169,15 @@
   # synthdefs
   install -vDm 644 etc/synthdefs/compiled/*.scsyndef \
     -t "${pkgdir}/usr/share/${pkgname}/synthdefs/compiled"
-  install -vDm 644 etc/synthdefs/designs/sonic_pi/synths/*.clj\
-    -t "${pkgdir}/usr/share/${pkgname}/synthdefs/designs/sonic_pi/synths"
-
+  install -vDm 644 etc/synthdefs/designs/overtone/${pkgname}/*.clj\
+    -t "${pkgdir}/usr/share/${pkgname}/synthdefs/designs/overtone/"
+  install -vDm 644 etc/synthdefs/designs/overtone/${pkgname}/src/sonic_pi/*.clj\
+    -t "${pkgdir}/usr/share/${pkgname}/synthdefs/designs/overtone/sonic_pi/src"
+  install -vDm 644 etc/synthdefs/designs/overtone/${pkgname}/test/sonic_pi/*.clj\
+    -t "${pkgdir}/usr/share/${pkgname}/synthdefs/designs/overtone/sonic_pi/test"
   # buffers
   install -vDm 644 etc/buffers/rand-stream.wav \
     -t "${pkgdir}/usr/share/${pkgname}/buffers"
-
   # docs
   install -vDm 644 etc/doc/cheatsheets/*.md \
     -t "${pkgdir}/usr/share/doc/${pkgname}/cheatsheets"
@@ -163,7 +187,6 @@
   # tutorial
   install -vDm 644 etc/doc/tutorial/*.md \
     -t "${pkgdir}/usr/share/doc/${pkgname}/tutorial"
-
   # examples
   install -vDm 644 etc/examples/algomancer/*.rb \
     -t "${pkgdir}/usr/share/doc/${pkgname}/examples/algomancer"
@@ -179,11 +202,9 @@
     -t "${pkgdir}/usr/share/doc/${pkgname}/examples/sorcerer"
   install -vDm 644 etc/examples/wizard/*.rb \
     -t "${pkgdir}/usr/share/doc/${pkgname}/examples/wizard"
-
   # erlang
   install -vDm 755 app/server/erlang/*.beam \
     -t "${pkgdir}/usr/lib/${pkgname}"
-
   # ruby
   install -vdm 755 "${pkgdir}/usr/share/${pkgname}"
   cp -av app/server/ruby "${pkgdir}/usr/lib/${pkgname}/server"
@@ -191,10 +212,8 @@
   rm -v "${pkgdir}/usr/lib/${pkgname}/server/vendor/"*/ext/*/*.{o,c}
   rm -v "${pkgdir}/usr/lib/${pkgname}/server/Rakefile"
   rm -v "${pkgdir}/usr/lib/${pkgname}/server/vendor/"*/Rakefile
-
   # xdg
   install -vDm 644 "${pkgname}.desktop" -t "${pkgdir}/usr/share/applications/"
-
   # license
   install -vDm 644 LICENSE.md "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
 }

Deleted: fix-paths-in-gui.diff
===================================================================
--- fix-paths-in-gui.diff	2020-03-08 22:53:07 UTC (rev 592634)
+++ fix-paths-in-gui.diff	2020-03-08 22:53:49 UTC (rev 592635)
@@ -1,62 +0,0 @@
-diff -ruN sonic-pi-3.1.0-a/app/gui/qt/mainwindow.cpp sonic-pi-3.1.0-b/app/gui/qt/mainwindow.cpp
---- sonic-pi-3.1.0-a/app/gui/qt/mainwindow.cpp	2018-01-22 23:00:13.000000000 +0100
-+++ sonic-pi-3.1.0-b/app/gui/qt/mainwindow.cpp	2018-04-10 21:56:32.907704553 +0200
-@@ -127,7 +127,7 @@
- #elif defined(Q_OS_MAC)
-   ruby_path = root_path + "/app/server/native/ruby/bin/ruby";
- #else
--  ruby_path = root_path + "/app/server/native/ruby/bin/ruby";
-+  ruby_path = root_path + "/usr/bin/ruby";
- #endif
- 
-   QFile file(ruby_path);
-@@ -136,9 +136,9 @@
-     ruby_path = "ruby";
-   }
- 
--  ruby_server_path = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/sonic-pi-server.rb");
--  port_discovery_path = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/port-discovery.rb");
--  sample_path = QDir::toNativeSeparators(root_path + "/etc/samples");
-+  ruby_server_path = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/sonic-pi-server.rb");
-+  port_discovery_path = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/port-discovery.rb");
-+  sample_path = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/samples");
- 
-   sp_user_path           = QDir::toNativeSeparators(sonicPiHomePath() + "/.sonic-pi");
-   sp_user_tmp_path       = QDir::toNativeSeparators(sp_user_path + "/.writableTesterPath");
-@@ -149,13 +149,13 @@
-   process_log_path       = QDir::toNativeSeparators(log_path + "/processes.log");
-   scsynth_log_path       = QDir::toNativeSeparators(log_path + QDir::separator() + "scsynth.log");
- 
--  init_script_path        = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/init-script.rb");
--  exit_script_path        = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/exit-script.rb");
-+  init_script_path        = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/init-script.rb");
-+  exit_script_path        = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/exit-script.rb");
- 
--  qt_app_theme_path     = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/app.qss");
-+  qt_app_theme_path     = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/app.qss");
- 
--  qt_browser_dark_css   = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/dark/doc-styles.css");
--  qt_browser_light_css   = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/light/doc-styles.css");
-+  qt_browser_dark_css   = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/dark/doc-styles.css");
-+  qt_browser_light_css   = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/light/doc-styles.css");
- 
-   QDir logDir(log_path);
-   logDir.mkpath(logDir.absolutePath());
-@@ -1020,7 +1020,7 @@
- #elif defined(Q_OS_WIN)
-   return QCoreApplication::applicationDirPath() + "/../../../..";
- #else
--  return QCoreApplication::applicationDirPath() + "/../../..";
-+  return QCoreApplication::applicationDirPath() + "/../..";
- #endif
- }
- 
-@@ -1059,7 +1059,7 @@
-   // Register server pid for potential zombie clearing
-   QStringList regServerArgs;
- #if QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)
--  regServerArgs << QDir::toNativeSeparators(rootPath() + "/app/server/ruby/bin/task-register.rb")<< QString::number(serverProcess->processId());
-+  regServerArgs << QDir::toNativeSeparators(rootPath() + "/usr/lib/sonic-pi/server/bin/task-register.rb")<< QString::number(serverProcess->processId());
- #endif
-   QProcess *regServerProcess = new QProcess();
-   regServerProcess->start(ruby_path, regServerArgs);

Deleted: fix-ruby-paths.diff
===================================================================
--- fix-ruby-paths.diff	2020-03-08 22:53:07 UTC (rev 592634)
+++ fix-ruby-paths.diff	2020-03-08 22:53:49 UTC (rev 592635)
@@ -1,96 +0,0 @@
-diff -ruN sonic-pi-3.1.0-a/app/server/ruby/core.rb sonic-pi-3.1.0-c/app/server/ruby/core.rb
---- sonic-pi-3.1.0-a/app/server/ruby/core.rb	2018-01-22 23:00:13.000000000 +0100
-+++ sonic-pi-3.1.0-c/app/server/ruby/core.rb	2019-02-07 21:50:09.761647719 +0100
-@@ -147,7 +147,7 @@
-   module Core
-     module SPRand
-       # Read in same random numbers as server for random stream sync
--      @@random_numbers = ::WaveFile::Reader.new(File.expand_path("../../../../etc/buffers/rand-stream.wav", __FILE__), ::WaveFile::Format.new(:mono, :float, 44100)).read(441000).samples.freeze
-+      @@random_numbers = ::WaveFile::Reader.new(File.expand_path("/usr/share/sonic-pi/buffers/rand-stream.wav", __FILE__), ::WaveFile::Format.new(:mono, :float, 44100)).read(441000).samples.freeze
- 
-       def self.tl_seed_map(seed, idx=0)
-         {:sonic_pi_spider_random_gen_seed => seed,
-diff -ruN sonic-pi-3.1.0-a/app/server/ruby/lib/sonicpi/util.rb sonic-pi-3.1.0-c/app/server/ruby/lib/sonicpi/util.rb
---- sonic-pi-3.1.0-a/app/server/ruby/lib/sonicpi/util.rb	2018-01-22 23:00:13.000000000 +0100
-+++ sonic-pi-3.1.0-c/app/server/ruby/lib/sonicpi/util.rb	2019-02-07 21:38:55.994922542 +0100
-@@ -216,11 +216,11 @@
-     end
- 
-     def root_path
--      File.absolute_path("#{File.dirname(__FILE__)}/../../../../../")
-+      File.absolute_path("/usr/share/sonic-pi")
-     end
- 
-     def etc_path
--      File.absolute_path("#{root_path}/etc")
-+      File.absolute_path("#{root_path}")
-     end
- 
-     def snippets_path
-@@ -228,7 +228,7 @@
-     end
- 
-     def doc_path
--      File.absolute_path("#{etc_path}/doc")
-+      File.absolute_path("/usr/share/doc/sonic-pi")
-     end
- 
-     def cheatsheets_path
-@@ -240,7 +240,7 @@
-     end
- 
-     def tmp_path
--      File.absolute_path("#{root_path}/tmp")
-+      File.absolute_path("/tmp")
-     end
- 
-     def synthdef_path
-@@ -256,7 +256,7 @@
-     end
- 
-     def app_path
--      File.absolute_path("#{root_path}/app")
-+      File.absolute_path("/usr/lib/sonic-pi")
-     end
- 
-     def html_public_path
-@@ -268,7 +268,7 @@
-     end
- 
-     def examples_path
--      File.absolute_path("#{etc_path}/examples")
-+      File.absolute_path("#{doc_path}/examples")
-     end
- 
-     def server_path
-@@ -276,7 +276,7 @@
-     end
- 
-     def server_bin_path
--      File.absolute_path("#{server_path}/ruby/bin")
-+      File.absolute_path("#{server_path}/bin")
-     end
- 
-     def native_path
-diff -ruN sonic-pi-3.1.0-a/app/server/ruby/util.rb sonic-pi-3.1.0-c/app/server/ruby/util.rb
---- sonic-pi-3.1.0-a/app/server/ruby/util.rb	2018-01-22 23:00:13.000000000 +0100
-+++ sonic-pi-3.1.0-c/app/server/ruby/util.rb	2018-04-10 22:16:26.994368179 +0200
-@@ -12,15 +12,15 @@
- #++
- 
- def sp_sonic_pi_path()
--  File.absolute_path("#{File.dirname(__FILE__)}/../../")
-+  File.absolute_path("#{File.dirname(__FILE__)}/..")
- end
- 
- def sp_scripts_path()
--  File.absolute_path("#{sp_sonic_pi_path}/app/scripts")
-+  File.absolute_path("#{sp_sonic_pi_path}/scripts")
- end
- 
- def sp_synthdefs_path()
--  File.absolute_path("#{sp_sonic_pi_path}/app/etc/synthdefs/compiled")
-+  File.absolute_path("#{sp_sonic_pi_path}/synthdefs/compiled")
- end
- 
- def spider_log(message)

Added: sonic-pi-3.2.0-devendor_qscintilla-qt5.patch
===================================================================
--- sonic-pi-3.2.0-devendor_qscintilla-qt5.patch	                        (rev 0)
+++ sonic-pi-3.2.0-devendor_qscintilla-qt5.patch	2020-03-08 22:53:49 UTC (rev 592635)
@@ -0,0 +1,23 @@
+diff -ruN a/app/gui/qt/CMakeLists.txt c/app/gui/qt/CMakeLists.txt
+--- a/app/gui/qt/CMakeLists.txt	2020-02-25 01:23:45.000000000 +0100
++++ c/app/gui/qt/CMakeLists.txt	2020-03-08 16:54:34.158555996 +0100
+@@ -38,9 +38,7 @@
+ 
+ find_package(Qt5 COMPONENTS Core Widgets Gui Concurrent Network OpenGL PrintSupport Xml Svg REQUIRED)
+ find_package(Threads REQUIRED)
+-
+-# We build scintilla as part of the main project to make it easy to debug/fix
+-add_subdirectory(external/QScintilla-2.11.4)
++find_library(QSCINTILLA_QT5 qscintilla2_qt5)
+ 
+ set(APP_NAME sonic-pi)
+ 
+@@ -129,7 +127,7 @@
+ 
+ target_link_libraries(${APP_NAME}
+     PRIVATE
+-    QScintilla
++    ${QSCINTILLA_QT5}
+     Qt5::Core 
+     Qt5::Gui 
+     Qt5::Widgets

Added: sonic-pi-3.2.0-gui_paths.patch
===================================================================
--- sonic-pi-3.2.0-gui_paths.patch	                        (rev 0)
+++ sonic-pi-3.2.0-gui_paths.patch	2020-03-08 22:53:49 UTC (rev 592635)
@@ -0,0 +1,76 @@
+diff -ruN a/app/gui/qt/mainwindow.cpp b/app/gui/qt/mainwindow.cpp
+--- a/app/gui/qt/mainwindow.cpp	2020-02-25 01:23:45.000000000 +0100
++++ b/app/gui/qt/mainwindow.cpp	2020-03-08 13:53:17.604508214 +0100
+@@ -353,10 +353,10 @@
+         ruby_path = "ruby";
+     }
+ 
+-    ruby_server_path = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/sonic-pi-server.rb");
+-    port_discovery_path = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/port-discovery.rb");
+-    fetch_url_path = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/fetch-url.rb");
+-    sample_path = QDir::toNativeSeparators(root_path + "/etc/samples");
++    ruby_server_path = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/sonic-pi-server.rb");
++    port_discovery_path = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/port-discovery.rb");
++    fetch_url_path = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/fetch-url.rb");
++    sample_path = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/samples");
+ 
+     sp_user_path           = QDir::toNativeSeparators(sonicPiHomePath() + "/.sonic-pi");
+     sp_user_tmp_path       = QDir::toNativeSeparators(sp_user_path + "/.writableTesterPath");
+@@ -367,14 +367,14 @@
+     process_log_path       = QDir::toNativeSeparators(log_path + "/processes.log");
+     scsynth_log_path       = QDir::toNativeSeparators(log_path + QDir::separator() + "scsynth.log");
+ 
+-    init_script_path       = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/init-script.rb");
+-    exit_script_path       = QDir::toNativeSeparators(root_path + "/app/server/ruby/bin/exit-script.rb");
++    init_script_path       = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/init-script.rb");
++    exit_script_path       = QDir::toNativeSeparators(root_path + "/usr/lib/sonic-pi/server/bin/exit-script.rb");
+ 
+-    qt_app_theme_path      = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/app.qss");
++    qt_app_theme_path      = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/app.qss");
+ 
+-    qt_browser_dark_css    = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/dark/doc-styles.css");
+-    qt_browser_light_css   = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/light/doc-styles.css");
+-    qt_browser_hc_css      = QDir::toNativeSeparators(root_path + "/app/gui/qt/theme/high_contrast/doc-styles.css");
++    qt_browser_dark_css    = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/dark/doc-styles.css");
++    qt_browser_light_css   = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/light/doc-styles.css");
++    qt_browser_hc_css      = QDir::toNativeSeparators(root_path + "/usr/share/sonic-pi/theme/high_contrast/doc-styles.css");
+ 
+     // attempt to create log directory
+     QDir logDir(log_path);
+@@ -1056,7 +1056,7 @@
+     return QCoreApplication::applicationDirPath() + "/../../../../..";
+ #else
+     // On linux, CMake builds app into the build folder
+-    return QCoreApplication::applicationDirPath() + "/../../../..";
++    return QCoreApplication::applicationDirPath() + "/../..";
+ #endif
+ }
+ 
+@@ -1098,7 +1098,7 @@
+     // Register server pid for potential zombie clearing
+     QStringList regServerArgs;
+ #if QT_VERSION >= QT_VERSION_CHECK(5, 3, 0)
+-    regServerArgs << QDir::toNativeSeparators(rootPath() + "/app/server/ruby/bin/task-register.rb")<< QString::number(serverProcess->processId());
++    regServerArgs << QDir::toNativeSeparators(rootPath() + "/usr/lib/sonic-pi/server/bin/task-register.rb")<< QString::number(serverProcess->processId());
+ #endif
+     QProcess *regServerProcess = new QProcess();
+     regServerProcess->start(ruby_path, regServerArgs);
+diff -ruN a/app/gui/qt/model/sonicpitheme.cpp b/app/gui/qt/model/sonicpitheme.cpp
+--- a/app/gui/qt/model/sonicpitheme.cpp	2020-02-25 01:23:45.000000000 +0100
++++ b/app/gui/qt/model/sonicpitheme.cpp	2020-03-08 19:59:00.840045897 +0100
+@@ -25,11 +25,11 @@
+     this->customSettingsFilename = customSettingsFilename;
+     this->rootPath = rootPath;
+ 
+-    qt_app_theme_path      = QDir::toNativeSeparators(rootPath + "/app/gui/qt/theme/app.qss");
++    qt_app_theme_path      = QDir::toNativeSeparators(rootPath + "/usr/share/sonic-pi/theme/app.qss");
+ 
+-    qt_browser_dark_css    = QDir::toNativeSeparators(rootPath + "/app/gui/qt/theme/dark/doc-styles.css");
+-    qt_browser_light_css   = QDir::toNativeSeparators(rootPath + "/app/gui/qt/theme/light/doc-styles.css");
+-    qt_browser_hc_css      = QDir::toNativeSeparators(rootPath + "/app/gui/qt/theme/high_contrast/doc-styles.css");
++    qt_browser_dark_css    = QDir::toNativeSeparators(rootPath + "/usr/share/sonic-pi/theme/dark/doc-styles.css");
++    qt_browser_light_css   = QDir::toNativeSeparators(rootPath + "/usr/share/sonic-pi/theme/light/doc-styles.css");
++    qt_browser_hc_css      = QDir::toNativeSeparators(rootPath + "/usr/share/sonic-pi/theme/high_contrast/doc-styles.css");
+ 
+     loadToolBarIcons();
+ 

Added: sonic-pi-3.2.0-ruby_paths.patch
===================================================================
--- sonic-pi-3.2.0-ruby_paths.patch	                        (rev 0)
+++ sonic-pi-3.2.0-ruby_paths.patch	2020-03-08 22:53:49 UTC (rev 592635)
@@ -0,0 +1,111 @@
+diff -ruN a/app/server/ruby/core.rb d/app/server/ruby/core.rb
+--- a/app/server/ruby/core.rb	2020-02-25 01:23:45.000000000 +0100
++++ d/app/server/ruby/core.rb	2020-03-08 21:29:51.417948839 +0100
+@@ -146,7 +146,7 @@
+   module Core
+     module SPRand
+       # Read in same random numbers as server for random stream sync
+-      @@random_numbers = ::WaveFile::Reader.new(File.expand_path("../../../../etc/buffers/rand-stream.wav", __FILE__), ::WaveFile::Format.new(:mono, :float, 44100)).read(441000).samples.freeze
++      @@random_numbers = ::WaveFile::Reader.new(File.expand_path("/usr/share/sonic-pi/buffers/rand-stream.wav", __FILE__), ::WaveFile::Format.new(:mono, :float, 44100)).read(441000).samples.freeze
+ 
+       def self.tl_seed_map(seed, idx=0)
+         {:sonic_pi_spider_random_gen_seed => seed,
+diff -ruN a/app/server/ruby/lib/sonicpi/util.rb d/app/server/ruby/lib/sonicpi/util.rb
+--- a/app/server/ruby/lib/sonicpi/util.rb	2020-02-25 01:23:45.000000000 +0100
++++ d/app/server/ruby/lib/sonicpi/util.rb	2020-03-08 21:39:53.485189513 +0100
+@@ -252,11 +252,11 @@
+     end
+ 
+     def root_path
+-      File.absolute_path("#{File.dirname(__FILE__)}/../../../../../")
++      File.absolute_path("/usr/share/sonic-pi")
+     end
+ 
+     def etc_path
+-      File.absolute_path("#{root_path}/etc")
++      File.absolute_path("#{root_path}")
+     end
+ 
+     def snippets_path
+@@ -264,7 +264,7 @@
+     end
+ 
+     def doc_path
+-      File.absolute_path("#{etc_path}/doc")
++      File.absolute_path("/usr/share/doc/sonic-pi")
+     end
+ 
+     def cheatsheets_path
+@@ -276,7 +276,7 @@
+     end
+ 
+     def tmp_path
+-      File.absolute_path("#{root_path}/tmp")
++      File.absolute_path("/tmp")
+     end
+ 
+     def synthdef_path
+@@ -292,19 +292,20 @@
+     end
+ 
+     def app_path
+-      File.absolute_path("#{root_path}/app")
++      File.absolute_path("/usr/lib/sonic-pi")
+     end
+ 
+     def html_public_path
+-      File.absolute_path("#{app_path}/gui/html/public")
++      File.absolute_path("#{doc_path}/gui/html/public")
+     end
+ 
++    # this path is only relevant during build time
+     def qt_gui_path
+       File.absolute_path("#{app_path}/gui/qt")
+     end
+ 
+     def examples_path
+-      File.absolute_path("#{etc_path}/examples")
++      File.absolute_path("#{doc_path}/examples")
+     end
+ 
+     def server_path
+@@ -312,7 +313,7 @@
+     end
+ 
+     def server_bin_path
+-      File.absolute_path("#{server_path}/ruby/bin")
++      File.absolute_path("#{server_path}/bin")
+     end
+ 
+     def native_path
+@@ -373,7 +374,7 @@
+     end
+ 
+     def erlang_server_path
+-      File.join(server_path, "erlang")
++      File.absolute_path("/usr/lib/sonic-pi")
+     end
+ 
+     def user_settings_path
+diff -ruN a/app/server/ruby/util.rb d/app/server/ruby/util.rb
+--- a/app/server/ruby/util.rb	2020-02-25 01:23:45.000000000 +0100
++++ d/app/server/ruby/util.rb	2020-03-08 21:43:42.229538721 +0100
+@@ -12,15 +12,15 @@
+ #++
+ 
+ def sp_sonic_pi_path()
+-  File.absolute_path("#{File.dirname(__FILE__)}/../../")
++  File.absolute_path("#{File.dirname(__FILE__)}/..")
+ end
+ 
+ def sp_scripts_path()
+-  File.absolute_path("#{sp_sonic_pi_path}/app/scripts")
++  File.absolute_path("#{sp_sonic_pi_path}/scripts")
+ end
+ 
+ def sp_synthdefs_path()
+-  File.absolute_path("#{sp_sonic_pi_path}/app/etc/synthdefs/compiled")
++  File.absolute_path("#{sp_sonic_pi_path}/synthdefs/compiled")
+ end
+ 
+ def spider_log(message)



More information about the arch-commits mailing list