Licensing Advice when wrapping GPL software

251 views
Skip to first unread message

Nathan Smith

unread,
Aug 19, 2016, 9:54:15 AM8/19/16
to julia-dev
Hi Folks, 

I'd like some advice on my first package. I'm building a package to interact with Maxima (similar in spirit to RCall.jl etc..). Maxima is under the GPL license so my question is this: Does this mean my package must also be GPL licensed? Do I have to supply the Maxima source code to respect Maxima's license in my package?

Building Maxima.jl has been a great experience, I'd just like to cover my bases before I start sharing my package broadly. Any advice would be greatly appreciated!

The package is here if anyone is interested :)

Best, 
Nathan


Stefan Karpinski

unread,
Aug 19, 2016, 10:02:43 AM8/19/16
to juli...@googlegroups.com
In short, no. If your package merely interacts with Maxima and is not derived from Maxima, then it can have its own license, which is entirely independent of Maxima's license. So if you're not copying code from Maxima, then it can be MIT or whatever you like. The combined product of Julia + your package + Maxima is a little more complicated and it depends on whether the result constitutes a single "derived work" or not, but you would not be distributing that, so you're not bound to the terms of that combination. In order for the combination to be unambiguously usable and distributable, you'll want to pick a GPL-compatible license for Maxima.jl – e.g. MIT, BSD or GPL. If you start distributing the combination, then you're bound to the terms of the GPL for Maxima, but you would be anyway since you'd be distributing Maxima then.

Cool package :)

Nathan Smith

unread,
Aug 19, 2016, 11:11:54 AM8/19/16
to julia-dev
Ok great, thanks for clarifying! So if I choose to add binary support through something like BinDeps I should be choosing something GPL-compatible right?

Tony Kelman

unread,
Aug 19, 2016, 11:36:08 AM8/19/16
to julia-dev
Yes that would be the least risky. It would also be a useful courtesy to users to note clearly the fact that the package wraps and downloads GPL-licensed software upon installation.

Steven G. Johnson

unread,
Aug 19, 2016, 12:50:13 PM8/19/16
to julia-dev


On Friday, August 19, 2016 at 10:02:43 AM UTC-4, Stefan Karpinski wrote:
In short, no. If your package merely interacts with Maxima and is not derived from Maxima, then it can have its own license,

To clarify, according to the FSF's legal counsel, if you interact with a program that is forked into a separate address space, then its license can be chosen independently of yours.  However, if you link dynamically to a library and share data structures with it, then you are a derived work of that library and are constrained by its license.

(For example, PyCall invokes Python by linking dynamically to libpython and sharing data structures with it, so we are constrained by Python's license.  However, since the CPython license is a permissive BSD-like license, it's not really a constraint.)

Ultimately, these questions of when something counts legally as a "derived work" of something else (and hence is constrained by its license) cannot be resolved except by a court, because they are determined by copyright law and not by the license itself.  But the FSF's interpretation of the GPL seems to have held up over many years, and hence is a good standard to follow.

Nathan Smith

unread,
Aug 19, 2016, 4:25:31 PM8/19/16
to julia-dev
Ok, for concreteness sake, the way Maxima.jl works is that it spawns maxima on a seperate process and communication happens over a TCP socket. So it seems from the FSF's interpretation I'm free to choose my license, though something GPL-compatible is probably the safest choice. 

Thanks for your help everyone! I'll be sure to report back when I finish a stable release :) 

Jeffrey Sarnoff

unread,
Aug 19, 2016, 6:30:06 PM8/19/16
to julia-dev
For use with Julia, the MIT License is best when one has the choice.
Reply all
Reply to author
Forward
0 new messages