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.

Reply via email to