Hamda Binte Ajmal hamda.binte.ajmal@gmail.com writes:
The Lisp code is not licensed yet, I wrote it and I DO NOT want it to be released under GPL. I want it to be BSD.
After that, I wrote a Java project that is basically the UI. This java project is using a component called DragMath which is released under GNU GPL, so it makes my java UI project GNU GPLed (sadly).
This combined project (dragmath + UI) uses ABCL.jar to compile, load and execute lisp functions written in my LISP code.
My Lisp code is completely irrelevant to DragMath or Java UI project.
from the weblink above, my case most probably falls under section STATIC OR DYNAMIC LINKING. It is definitely not static linking, they are NOT in the same executable file and the project can compile without the LISP code.
It loads the lisp code at run time. Now this line from GNU GPL FAQ " If modules are designed to run linked together in a shared address space [dynamic linking], that almost surely means combining them into one program."
is the grey area. I wonder if it is possible to release LISP code under BSD! Again reading the web and discussion, I guess answer is yes, or wait court ruling, :-D
Yes.
As I see it, the program is composed of a Java UI that is derived work of both the dragmath library and your lisp library. Therefore it has to respect both licenses. Happily, BSD is compatible with GPL, even if the whole derived work has to be released under the GPL which takes precedence here (so called "viral"). But since the lisp code is not derived work of dragmath, then it independent and you may license it under the BSD license. If you distribute the derived work, you will have to provide the source of Java UI and dragmath (along with a copy the GPL license), and a copy of the BSD license.
Now, from the BSD license, you wouldn't have to distribute the source of the BSD library, but by article 1 of the GPL3, you will still have to distribute the sources of that BSD library along with the other sources, since it's needed to build the derived work:
The “Corresponding Source” for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.
Another dimension of "virality", I guess.
How and when code is loaded is irrelevant AFAIUI. All that matters is whether Java UI+dragmath makes a usable program without the lisp code or not. If the lisp code is essential for the features of the application, then the application will be a derived work of the lisp code, no matter how it's linked or loaded.