3

I would like to publish my application with the GPLv3 licence, as the used libraries are also published with the GPLv3 licence. So far so good.

But besides this my application needs a further software to be installed to be run correctly. In my case this is an instance of R, which would be so far no problem, as it is also published with the GPLv3 licence. But would it be a problem, if the required software, that will not be shipped with my application, would have a licence that does not fit with a GPLv3 licence? Or is this no problem as long as I do not ship the software with my application and give the advice to install this software.

1
  • if you control the license, you can permit a dependency on a module with another specific license - I'm not sure how this interacts with the other modules you don't control, though
    – lofidevops
    May 27, 2017 at 14:07

3 Answers 3

1

But would it be a problem, if the required software, that will not be shipped with my application, would have a licence that does not fit with a GPLv3 licence? Or is this no problem as long as I do not ship the software with my application and give the advice to install this software.

The GPLv3 license requires that the entire application is available under an open-source license that gives at least the freedoms that the GPL license gives. This is in principle independent of how the different parts that make up the application end up on the end-user's computer. (Some people might believe there is a loophole in the GPL requirements when you instruct the user to retrieve the parts independently, giving the possibility to use closed-source software in an otherwise GPL application. I don't believe that that loophole exists.)

In my case this is an instance of R

This is a different matter. The R interpreter (and other language interpreters or VMs) are not considered part of your application and thus don't fall under the GPL requirement that the entire application must be available under a compatible license.

The fact that the user needs R to execute your application is a similar requirement to the requirements that you need Python to execute Python scripts, a Java VM to execute Java applications or even Windows to run applications built for that OS.

1

What a great question.

It's not clear whether R is a library from your question. I don't think it matters whether it is or isn't.

So we all know that the GPL v03 applies to "The Program". The GPL refers to "the Program" other ways as well, such as "a work" and "the work", depending on the context in which those alternatives are used.

The GPL V 03 doesn't say that Program needs to be bug-free, complete, prone to failure, fit for purpose or ..... be fully functional.

So my half-cut C# code that will never run can be licensed under the GPL as well. As a receiver of my C# code you've got a right to run it under the GPL v03. It just so happens you can't.

What about GPL v03, section 5, 3rd bullet point? Sure, you have to "license the entire work". But what is the entire work? Couldn't it be your "incomplete" GPL v 03 software which fails gracefully, if R is not present and ready for use?

Suggested Solution You could structure your code base to look for plugins - or named plugins. Of the sort of "R", as referred to in your question.

So your GPL code would - unmodified - checks to see if the code ("R") is available and ready to use. (For instance, your GPL code checks to see whether "R" is installed and in a particular location on the disk, and runs some preliminary polling to make sure it's installed correctly and will operate properly).

That way, the receiver of your software can (1) download your GPL package, (2) pull R from elsewhere and install it so as to enable the functionality in your code that would otherwise not be available, because the R plugin is not present.

What about GPL v03, section 5, 3rd bullet point? (the reference to the "entire work" and "whole work"). The R code would not be "packaged" with your release. So it's not covered by the GPL v03. And no licensing conflict.

Let's say I'm wrong on what I say above....

The sentence at the end GPL v03, section 5, 3rd bullet point says:

"This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it."

Well, let's think about that from the receiver's perspective. As a receiver of your GPL v03 software, I'm licensed anyway. Just because you don't do the right thing, doesn't mean I'm not licensed to run your code with R.

Also, see the last paragraph of section 5, 3rd bullet point. You wouldn't be distributing R with your GPL v03 package. Therefore, it doesn't apply.

There'd be no problem telling your licensees how to install R. I wouldn't do that in your your distribution package, but I'm not sure it matters.

Lastly, a warning. Make sure the license for R doesn't prohibit it from being used with GPL v03.

0

In most cases it will not be a problem. Most of the open source licences which require to publish under the same licence limit this requirement to source code distribution. So if you contribute/modify either of the libraries it will be under the licence of that library.

When it comes to the distribution of your application, most of the open source licences make it possible to distribute your application in binary form under another license:

Microsoft Reciprocal:

If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.

Mozilla Public License Version 2.0:

You may distribute such Executable Form under the terms of this License, or sublicense it under different terms, provided that the license for the Executable Form does not attempt to limit or alter the recipients' rights in the Source Code Form under this License.

As a general statement : The obligation to distribute under the same licence is limited to source code distribution. Binary distribution allows for different licence. The intention is clearly to allow such cases as highlighted in the question : allow a developer to mix open-source software with distinct licence terms.

GPL V3 however is in clear contradiction with the above.

  1. Conveying Non-Source Forms.

    You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: [...]

and section 5 says:

c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.

So in this regard, GPL V3 is a "greedy" licence and you would have no choice but to licence your application binaries with GPL V3 - and make sure licences from other components allow it (as do the above highlighted ones).

5
  • 2
    I don't think GPLv3 does what you think: the section you quote says that the object code form (ie, binary) binary must be conveyed under the terms of GPLv3 s4 and s5, and s5c says that GPLv3 must apply "to the whole of the work, and all its parts, regardless of how they are packaged". Indeed, it goes on to add that "This License gives no permission to license the work in any other way".
    – MadHatter
    Jan 22, 2019 at 12:50
  • @madhatter I understand your point of view and I agree GPL v3 s5 can be interpreted as you write. My interpretation is however different and that also bases on other sections of the licences which drive the more general statement at the end of my answer : merging different licences is an intended use case for these licences. But this is awfully subject to interpretation.
    – d-stroyer
    Jan 22, 2019 at 16:14
  • I think you'll find it difficult to persuade anyone of your viewpoint, not least because (as I note) the GPL directly contradicts it. Don't let me stop you behaving as if what you said was true, but I'd hate for you to influence anyone else. If you want to remove the GPL section from your answer I'll remove my downvote, as I have no beef with any of the rest of it.
    – MadHatter
    Jan 22, 2019 at 16:36
  • @madhatter I recognize your viewpoint is probably what a court would say in the end. Though I still doubt "packaging" is a superset of "building binaries" from a pure software point of view. So I changed the text to be on the safe side.
    – d-stroyer
    Jan 23, 2019 at 9:01
  • Downvote removed.
    – MadHatter
    Jan 24, 2019 at 7:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.