sonic-pi-net / sonic-pi

Code. Music. Live.
https://sonic-pi.net
Other
10.83k stars 922 forks source link

Build fails on FreeBSD #1713

Closed yurivict closed 6 years ago

yurivict commented 7 years ago

I'm trying to build on the FreeBSD.

Based on build-ubuntu-app, I'm running these commands:

                ../../server/bin/compile-extensions.rb && \
                ../../server/bin/i18n-tool.rb -t && \
                cp -f ruby_help.tmpl ruby_help.h && \
                ../../server/bin/qt-doc.rb -o ruby_help.h

But they fail:

===>  Configuring for sonic-pi-3.0.1
Clearing ../../server/bin/../rb-native/amd64-freebsd11/2.3
Creating ../../server/bin/../rb-native/amd64-freebsd11/2.3
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/rugged-0.25.1/ext/rugged
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ffi-1.9.17/ext/ffi_c
Call.c:355:5: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
    rbffi_thread_blocking_region(call_blocking_function, data, (void *) -1, NULL);
    ^
./Thread.h:78:39: note: expanded from macro 'rbffi_thread_blocking_region'
# define rbffi_thread_blocking_region rb_thread_call_without_gvl
                                      ^
1 warning generated.
Function.c:563:9: warning: implicit declaration of function 'rb_thread_call_without_gvl' is invalid in C99 [-Wimplicit-function-declaration]
        rb_thread_call_without_gvl(async_cb_wait, &w, async_cb_stop, &w);
        ^
1 warning generated.
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/atomic/ext
atomic_reference.c:27:12: warning: 'rb_data_object_alloc' is deprecated: by rb_data_object_wrap [-Wdeprecated-declarations]
    return rb_data_object_alloc(klass, (void *) Qnil, ir_mark, NULL);
           ^
/usr/local/include/ruby-2.3/ruby/ruby.h:1428:1: note: 'rb_data_object_alloc' has been explicitly marked deprecated here
rb_data_object_alloc(VALUE klass, void *data, RUBY_DATA_FUNC dmark, RUBY_DATA_FUNC dfree)
^
atomic_reference.c:96:55: warning: incompatible integer to pointer conversion passing 'VALUE' (aka 'unsigned long') to parameter of type 'void *' [-Wint-conversion]
    if (__sync_bool_compare_and_swap(&DATA_PTR(self), expect_value, new_value)) {
                                                      ^~~~~~~~~~~~
atomic_reference.c:96:69: warning: incompatible integer to pointer conversion passing 'VALUE' (aka 'unsigned long') to parameter of type 'void *' [-Wint-conversion]
    if (__sync_bool_compare_and_swap(&DATA_PTR(self), expect_value, new_value)) {
                                                                    ^~~~~~~~~
3 warnings generated.
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ruby-prof-0.15.8/ext/ruby_prof
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/interception/ext
make[1]: don't know how to make clean. Stop
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/fast_osc-0.0.12/ext/fast_osc
Compiling native extension in /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/did_you_mean-0.10.0/ext/did_you_mean
Translated tutorial de: 66.4% ready, 0.6% fuzzy.
Translated tutorial es: 61.4% ready, 33.4% fuzzy.
Translated tutorial fr: 83.3% ready, 18.5% fuzzy.
Translated tutorial it: 83.6% ready, 0.4% fuzzy.
Translated tutorial ja: 83.3% ready, 1.3% fuzzy.
Translated tutorial nb: 20.8% ready, 1.1% fuzzy.
Translated tutorial nl: 83.3% ready, 0.5% fuzzy.
Translated tutorial pl: 83.6% ready, 0.3% fuzzy.
Translated tutorial pt: 62.4% ready, 1.1% fuzzy.
Translated tutorial ro: 86.8% ready, 0.0% fuzzy.
Translated tutorial ru: 71.5% ready, 37.4% fuzzy.
Failed to load the fast_osc c-extension, falling back to pure Ruby version
Overriding fast_osc c-extension FastOsc::decode_single_message, falling back to pure Ruby version
/usr/local/lib/ruby/2.3/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- ffi_c (LoadError)
    from /usr/local/lib/ruby/2.3/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ffi-1.9.17/lib/ffi.rb:6:in `rescue in <top (required)>'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ffi-1.9.17/lib/ffi.rb:3:in `<top (required)>'
    from /usr/local/lib/ruby/2.3/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/lib/ruby/2.3/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ruby-aubio-prerelease/lib/aubio/api.rb:1:in `<top (required)>'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ruby-aubio-prerelease/lib/aubio.rb:2:in `require_relative'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/vendor/ruby-aubio-prerelease/lib/aubio.rb:2:in `<top (required)>'
    from /usr/local/lib/ruby/2.3/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/local/lib/ruby/2.3/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/sonicpi/lib/sonicpi/samplebuffer.rb:17:in `<top (required)>'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/sonicpi/lib/sonicpi/studio.rb:16:in `require_relative'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/sonicpi/lib/sonicpi/studio.rb:16:in `<top (required)>'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/sonicpi/lib/sonicpi/runtime.rb:14:in `require_relative'
    from /usr/ports/audio/sonic-pi/work/sonic-pi-3.0.1/app/server/sonicpi/lib/sonicpi/runtime.rb:14:in `<top (required)>'
    from ../../server/bin/qt-doc.rb:22:in `require_relative'
    from ../../server/bin/qt-doc.rb:22:in `<main>'
*** Error code 1
samaaron commented 6 years ago

Sorry, we currently don't have the resources to support FreeBSD, although we'd love to work with individuals who would be able to help.

It looks like you need to build the Ruby gem extensions - or if you did, they didn't quite build correctly.

Sorry we're unable to offer much assistance here. Perhaps a move to using vanilla rubygems will help with this.