Forum: JRuby FFI not available: on Raspberry Pi ARM linux JRuby. Any one tried this?

82e2a108ae128a41ba2bed3b6e3abbcf?d=identicon&s=25 Craig Anderson (cootcraig)
on 2014-03-15 22:47
(Received via mailing list)
I have opened an issue, but don't know how to troubleshoot further:
https://github.com/jruby/jruby/issues/1561

require 'spoon' fails on Raspberry Pi ARM linux JRuby

---- system notes
$ uname -a
Linux pika 3.10-3-rpi #1 Debian 3.10.11-1+rpi4 (2014-01-24) armv6l
GNU/Linux

$ jruby -v
jruby 1.7.11 (1.9.3p392) 2014-02-24 86339bb on Java HotSpot(TM) Client
VM 1.8.0-b129 +indy [linux-arm]

-------------------------------- the Exception trace

LoadError: Could not load FFI Provider: (NotImplementedError) FFI not
available: null
  See http://jira.codehaus.org/browse/JRUBY-4583
   require at org/jruby/RubyKernel.java:1085
    (root) at /opt/jruby/jruby-1.7.11/lib/ruby/shared/ffi/ffi.rb:69
   require at org/jruby/RubyKernel.java:1085
    (root) at /opt/jruby/jruby-1.7.11/lib/ruby/shared/ffi.rb:1
   require at org/jruby/RubyKernel.java:1085
    (root) at /opt/jruby/jruby-1.7.11/lib/ruby/shared/ffi.rb:1
   require at org/jruby/RubyKernel.java:1085
    (root) at
/opt/jruby/jruby-1.7.11/lib/ruby/gems/shared/gems/spoon-0.0.4/lib/spoon/unix.rb:1
   require at org/jruby/RubyKernel.java:1085
    (root) at spoon_socat.rb:8

--- From Gemfile.lock
GEM
   remote: http://rubygems.org/
   specs:
...
     ffi (1.9.3-java)
...
     spoon (0.0.4)
       ffi
...

--- From the script
require 'rubygems'
require 'bundler/setup'

require 'celluloid/autostart'
require 'celluloid/io'

require 'spoon'  <<<<<<<<<<<<<<<<<<<<<< line 8 - spoon_socat.rb:8

class SocatSpawnAndWait
   include 'Celluloid'
   include 'Celluloid::Notifications'

   DEFAULT_SPAWN_ARGV %w(/usr/bin/socat tcp-listen:54321,reuseaddr,fork
file:/dev/Diavolino,raw,echo=0,b9600,waitlock=/var/run/Diavolino.lock')

   def initialize(aspawn_argv=DEFAULT_SPAWN_ARGV)
     @spawn_argv = aspawn_argv
   end
   def run
     file_actions = Spoon::FileActions.new
     spawn_attr = Spoon::SpawnAttributes.new
       spawn_pid = Spoon.posix_spawn(SPAWN_PATH, file_actions,
spawn_attr, @spawn_argv)
     wait_pid,wait_status = Process.waitpid(spawn_pid)
     [wait_pid,wait_status]
   end
end

span_and_wait = SocatspawnAndWait.new
span_and_wait.run
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.