Licensing Issues

Pascal J. Bourguignon pjb at
Thu Jul 2 08:21:12 UTC 2015

Hamda Binte Ajmal
<hamda.binte.ajmal at> 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 
> 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


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.

__Pascal Bourguignon__       
“The factory of the future will have only two employees, a man and a
dog. The man will be there to feed the dog. The dog will be there to
keep the man from touching the equipment.” -- Carl Bass CEO Autodesk

More information about the armedbear-devel mailing list