From 82d0146c07c6607d24e69bfc514bdc8da79ec401 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Mon, 28 Nov 2022 16:15:52 +0300 Subject: [PATCH 1/7] Add Fedora linux dependencies --- BUILD-LINUX.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/BUILD-LINUX.md b/BUILD-LINUX.md index 0b71728548..e8b513ef04 100644 --- a/BUILD-LINUX.md +++ b/BUILD-LINUX.md @@ -69,6 +69,14 @@ following methods: * Get newer packaged versions of Elixir from [Erlang Solutions' repository](https://www.erlang-solutions.com/downloads/) (though installing packages from outside your distros main repository is at your own risk!) * Build and install it yourself +### 1.2 Fedora +```bash +sudo dnf group install "Development Tools" +sudo dnf install alsa-utils cmake elixir erlang erlang-xmerl glew-devel jack-audio-connection-kit-devel jack-audio-connection-kit-example-clients ninja-build openssl-devel qt5-qtconfiguration-devel qt5-qttools-devel qt5-qtsvg-devel ruby-devel supercollider-devel +``` + +There is an Audinux Copr [repository]()https://copr.fedorainfracloud.org/coprs/ycollet/audinux/package/sonic-pi/) with Sonic-Pi. + ## 2. Preparing the Build Once we have installed all the dependencies, we're almost ready to build From 9ab173d0ef3067368da3551f5a8cbf2ede1a3d76 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Mon, 28 Nov 2022 16:19:41 +0300 Subject: [PATCH 2/7] Do not use make clean for rubygem interception This prevents an error when using scripts to install Sonic-Pi. --- app/server/ruby/bin/compile-extensions.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/server/ruby/bin/compile-extensions.rb b/app/server/ruby/bin/compile-extensions.rb index e01739aab8..c3f153b485 100755 --- a/app/server/ruby/bin/compile-extensions.rb +++ b/app/server/ruby/bin/compile-extensions.rb @@ -67,7 +67,9 @@ puts "Compiling native extension in #{ext_dir}" Dir.chdir(ext_dir) do `"#{RbConfig.ruby}" extconf.rb` - `make clean` + if not (ext_dir.include? "interception") + `make clean` + end `make` end From dbb5309ecf0b8bd71ccdeb0a212e2498a7cdf9b3 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Mon, 28 Nov 2022 16:25:30 +0300 Subject: [PATCH 3/7] Ensure libGLEW can be found on Linux Prevent error when building imgui --- app/gui/imgui/CMakeLists.txt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/gui/imgui/CMakeLists.txt b/app/gui/imgui/CMakeLists.txt index 0cc68866d5..a121c20384 100644 --- a/app/gui/imgui/CMakeLists.txt +++ b/app/gui/imgui/CMakeLists.txt @@ -95,6 +95,14 @@ target_link_directories(${APP_NAME} ) endif() +# libglew needs to be explicitly set on Linux +if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + target_link_libraries (${APP_NAME} + PRIVATE + GLEW + ) +endif() + target_link_libraries (${APP_NAME} PRIVATE SonicPi::API From e9702f11680414fa1862135fcadab764277a3578 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Mon, 28 Nov 2022 16:35:12 +0300 Subject: [PATCH 4/7] Additional Fedora linux dependencies --- BUILD-LINUX.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BUILD-LINUX.md b/BUILD-LINUX.md index e8b513ef04..47c019527c 100644 --- a/BUILD-LINUX.md +++ b/BUILD-LINUX.md @@ -72,7 +72,7 @@ following methods: ### 1.2 Fedora ```bash sudo dnf group install "Development Tools" -sudo dnf install alsa-utils cmake elixir erlang erlang-xmerl glew-devel jack-audio-connection-kit-devel jack-audio-connection-kit-example-clients ninja-build openssl-devel qt5-qtconfiguration-devel qt5-qttools-devel qt5-qtsvg-devel ruby-devel supercollider-devel +sudo dnf install alsa-utils aubio-devel catch-devel cmake crossguid-devel elixir erlang erlang-xmerl fmt-devel glew-devel gsl-lite-devel jack-audio-connection-kit-devel jack-audio-connection-kit-example-clients libsndfile-devel ninja-build openssl-devel qt5-qtconfiguration-devel qt5-qttools-devel qt5-qtsvg-devel reproc-devel ruby-devel SDL2-devel supercollider-devel vcpkg ``` There is an Audinux Copr [repository]()https://copr.fedorainfracloud.org/coprs/ycollet/audinux/package/sonic-pi/) with Sonic-Pi. From 2f3906dcc4e5d5ecf40dac18a7c1302738199535 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Wed, 30 Nov 2022 11:07:17 +0300 Subject: [PATCH 5/7] Ensure GL3W gets found on Linux Cleaner fix found during review by Lily Foster. --- app/gui/imgui/CMakeLists.txt | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/gui/imgui/CMakeLists.txt b/app/gui/imgui/CMakeLists.txt index a121c20384..a8c804e883 100644 --- a/app/gui/imgui/CMakeLists.txt +++ b/app/gui/imgui/CMakeLists.txt @@ -93,14 +93,9 @@ target_link_directories(${APP_NAME} PRIVATE /opt/vc/lib ) -endif() - -# libglew needs to be explicitly set on Linux -if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - target_link_libraries (${APP_NAME} - PRIVATE - GLEW - ) +else() + target_compile_definitions(${APP_NAME} PRIVATE + IMGUI_IMPL_OPENGL_LOADER_GL3W) endif() target_link_libraries (${APP_NAME} From 7faf22de3b7e50124078289c478d782dce466688 Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Wed, 30 Nov 2022 11:16:45 +0300 Subject: [PATCH 6/7] Rubygem interception not required --- app/server/ruby/bin/compile-extensions.rb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/server/ruby/bin/compile-extensions.rb b/app/server/ruby/bin/compile-extensions.rb index c3f153b485..a087779775 100755 --- a/app/server/ruby/bin/compile-extensions.rb +++ b/app/server/ruby/bin/compile-extensions.rb @@ -66,10 +66,8 @@ end puts "Compiling native extension in #{ext_dir}" Dir.chdir(ext_dir) do - `"#{RbConfig.ruby}" extconf.rb` - if not (ext_dir.include? "interception") - `make clean` - end + `"#{RbConfig.ruby}" extconf.rb` + `make clean` `make` end From ad01951719e1210a861dc7a934def1463a9992ef Mon Sep 17 00:00:00 2001 From: Benson Muite Date: Wed, 30 Nov 2022 11:17:52 +0300 Subject: [PATCH 7/7] Remove trailing spaces --- app/server/ruby/bin/compile-extensions.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/server/ruby/bin/compile-extensions.rb b/app/server/ruby/bin/compile-extensions.rb index a087779775..e01739aab8 100755 --- a/app/server/ruby/bin/compile-extensions.rb +++ b/app/server/ruby/bin/compile-extensions.rb @@ -66,7 +66,7 @@ end puts "Compiling native extension in #{ext_dir}" Dir.chdir(ext_dir) do - `"#{RbConfig.ruby}" extconf.rb` + `"#{RbConfig.ruby}" extconf.rb` `make clean` `make` end