JRuby is currently using JNA for performing native operations like File.executable?. It looks like there are also some references to JNA in the src/org/jruby/ext/ffi code. This is a problem for me now because JNA is licensed as LGPL. As far as I know, JRuby's CPL license is the most restrictive license, with respect to commercial development, used by JRuby and its other dependences. CPL is fine for me. But JNA is LGPL and I can't have that in my project, unfortunately [1].
Once I realized this problem a several weeks ago I started mentally preparing myself for building my own version of JRuby without JNA (and hopefully contribute patches back to the main project). Right now I've still got some other things in front of me, but I'll have to take this on in the next couple of weeks. I've discussed this a bit with headius and others in IRC over the last two days. It sounds like there may be a better way out: JFFI. I do not know much about the JFFI project since I cannot find any information about it on the web. But headius is saying that JFFI is not dependent on JNA and it could easily substitute for where JNA is being used right now. So I have a couple of questions: 1) Is JFFI going to be as or less restrictive than CPL for commercial applications? 2) Can JFFI truly replace JNA JRuby? 3) What can I do to help with the conversion? 4) If JFFI can't be used or isn't ready yet, am I in for a world of pain when I go to produce a JNA-less JRuby? Any other thoughts? [1] Oh, and I'd gladly use an LGPL library if I could. I understand the difference between LGPL and GPL. But the customer I'm producing software for won't allow it. Sometimes the FUD wins.
