Dual GPLv3 and Apache License?

Hi,

Is it possible to release a JUCE app under the GPLv3 license, but also add the Apache license too? According to [0] the gnu.org website, Apache 2.0 is compatible with GPLv3 from what I understand. The question here is does JUCE allow compatible GPLv3 licenses to be combined?

For context, the use case is really 1) to have a license with a known foundation behind my source code, and 2) the explicit wording about not granting use of trademarks.

Any info appreciated!

[0] https://www.gnu.org/licenses/quick-guide-gplv3.en.html

You can’t release a JUCE app (which is a combination of the JUCE code and your own code) under the Apache license, since that would mean re-licensing the JUCE code, and you don’t have the right to do that.

You can license your own code under any number of licenses you want. It’s yours. However, the license of your code might have to follow the GPLv3 when combining it with the JUCE code.

Right it seems like it should be that way, but the JUCE wording says your code needs to be GPL too, it doesn’t say your code just needs to adhere to the GPL license like is normally the case. So it’s actually not purely GPL, but is asserting what the license for ones own code must be in clause ( c ):

( c ) license your Applications under the GNU License

Full section:

During the term of this Agreement, you expressly acknowledge and agree that if you are a JUCE Personal, JUCE Indie, JUCE Pro, or JUCE Education user and the Revenue Limit thresholds, above, are exceeded, then you may no longer use that tier of the Program, and you must either: (a) purchase a different JUCE licence (if eligible); (b) destroy all copies of the Program in your possession or control, and cease distributing your Applications; or in the case of JUCE Personal, or (c) license your Applications under the GNU License. We may monitor your compliance with and enforce these restrictions and requirements as described in clause 10.4 below.

Source:

“your Applications” is not the same thing as “your code”, that’s what I tried to explain earlier.

I see what you mean, that’s not GPL however, it doesn’t preclude other licenses that are compatible with it. You can see in the link above, they’re clear that Apache is compatible, so releasing an app under both licenses is permitted and doesn’t change that the license of the app is also under GPL.

I’m thinking the intention was simply to say they want you to adhere to the GPL license, but accidentally worded it such that it sounds like it needs to be exclusively GPL, and it even changes their own ISC licensed modules to GPL.

Like McMartin said, “your Application” is the resulting binary of combining your code with JUCE’s code. If you use GPL code at all, you need to license “your Application” (the binaries) under the GPL.

Your code can be licensed under any terms that you want, but if you combined it with GPL code into a binary and released it, your code must be GPL compatible (e.g. MIT, Apache, etc)

Thanks Mtytel, I think both you and McMartin aren’t reading the text of the license, I agree with what both of you are saying, however the license disagrees with what you’re saying. I’ll probably just reach out to JUCE directly since this prob isn’t a good place to ask these questions, thanks for the follow up however!

Where do you see that?

As pointed out before, “your Application” must be GPL licensed and “your Application” refers to the binary application.

12.1. Application(s): desktop or mobile applications developed using the JUCE Code, 
which incorporates the Licensee Content.

But the code itself can be licensed with a GPL compatible license. Modified parts or derivative works of the JUCE code base must strictly be GPL:

1.8. Remember, unless you upgrade to JUCE Indie or JUCE Pro, if you exceed the 
Revenue Limit for JUCE Personal, then your JUCE Personal licence is governed by the 
GNU License which is an open-source licence and requires, among other things, that 
you make your source code available and license modified files and larger derived works
(including all linked code) under the same terms of the GNU License. Please review the 
terms of the GNU License carefully.
1 Like

Where do you see that?

@McMartin

See:
https://juce.com/juce-5-license

Search for:

license your Applications under the GNU License

This says “your Applications”, not “your code”. I still don’t see where the JUCE license says “you code needs to be GPL too”.

You’re stuck on the word code, forget that. It’s saying the app must be GPL exclusively, so can’t be combined with any other license. That’s not GPL. Not sure how else to make that clear.

The wording here is a little tricky, and there’s probably no way to correctly summarise the legal boilerplate itself:

From Apache:

Apache 2 software can therefore be included in GPLv3 projects, because the GPLv3 license accepts our software into GPLv3 works. However, GPLv3 software cannot be included in Apache projects. The licenses are incompatible in one direction only, and it is a result of ASF’s licensing philosophy and the GPLv3 authors’ interpretation of copyright law.

From the FSF:

https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean

What does it mean to say a license is “compatible with the GPL?” (#WhatDoesCompatMean)

It means that the other license and the GNU GPL are compatible; you can combine code released under the other license with code released under the GNU GPL in one larger program.

All GNU GPL versions permit such combinations privately; they also permit distribution of such combinations provided the combination is released under the same GNU GPL version. The other license is compatible with the GPL if it permits this too.

Again JUCE’s license doesn’t permit it in either direction, it’s amended the GPL license with the wording I’ve mentioned above multiple times.

I think you need to try to be really explicit in describing what you are trying to achieve here. So far quite a lot of people in this thread have been unable to understand exactly what it is you are saying.

The last paragraph from the FSF seems to be key here. The “JUCE application” is the combination, and the combination can only be released under the GPLv3.

Each source file in JUCE embeds its own license information.

Some files are licensed under the ISC:

   The code included in this file is provided under the terms of the ISC license
   http://www.isc.org/downloads/software-support-policy/isc-license. Permission
   To use, copy, modify, and/or distribute this software for any purpose with or
   without fee is hereby granted provided that the above copyright notice and
   this permission notice appear in all copies.

Some files are licensed under both the JUCE 5 license and the GPLv3:

   By using JUCE, you agree to the terms of both the JUCE 5 End-User License
   Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
   27th April 2017).

   End User License Agreement: www.juce.com/juce-5-licence
   Privacy Policy: www.juce.com/juce-5-privacy-policy

   Or: You may also use this code under the terms of the GPL v3 (see
   www.gnu.org/licenses).

The most important part, there, is:

   Or: You may also use this code under the terms of the GPL v3 (see
   www.gnu.org/licenses).

This means that when you use the JUCE code under the terms of the GPLv3, you should be ignoring the JUCE 5 license completely.

2 Likes

@t0m I’m not sure how more explicit one can be tbh. I’ve cited the exact text that’s the issue multiple times and folks don’t read it and then cite other text instead or cite things on other sites rather than addressing the wording of the JUCE license that says you must explicitly use GPL vs adhere to the license. I guess it’s kind of amusing at this point though :slight_smile:

I did use the term code instead of app on accident in the first post however, which seems to be one point of confusion. Though I’m talking about the app and JUCE’s license and how to protect the name of the app where GPL isn’t as clear as Apache. I could just add the wording to the app license, but the JUCE license at the top level doesn’t permit that the crux of the issue.

Then I think we might be at a bit of an impasse.

The last bit of the FSF guidelines that I cited

All GNU GPL versions permit such combinations privately; they also permit distribution of such combinations provided the combination is released under the same GNU GPL version. The other license is compatible with the GPL if it permits this too.

state that if you license your source code using Apache 2.0, and combine it with GPLv3 source code, then if you release the combination of the two then you must do so under the GPLv3 license.

There is nothing in there about JUCE - this applies to any GPLv3 code.

The text that you cite

license your Applications under the GNU License

is consistent with this position. The “Application” is the combination of your source code and JUCE’s GPLv3 source code. If you release the Application then you must do so under the GPLv3 license.

How would altering any of the language in JUCE license wording to “adhere to the GPLv3 license” change this position?

2 Likes

Let me see if I can explain, backing up;

JUCE has the top level license and that controls what software licenses can be used. This is what I’m asking about, the top level license.

In the top level JUCE license (other than the paid for license) it says your app must be GPL. It doesn’t say GPL along with any additional wording that is compatible with the license.

Because the GPL license doesn’t have explicit wording protecting trademarks, my question is how to protect a trademark since JUCE doesn’t allow any other wording.

If you were to say adhere (or better wording), the point is that 1) the app is then under the GPL license (and in spirit of the license), and 2) it then allows someone to add additional restrictions that are compatible with the license. This is the spirit of the GPL license too. However again at the top level the JUCE license doesn’t permit this, which ironically isn’t in the spirit of the GPL license.

If none of that makes any sense at all, the question is simply; how do you protect the trademark on an app under the JUCE licence – and to be clear, that has nothing to do with GPL unless maybe the FSF owns JUCE.

Let me know if that’s clearer :slight_smile:

1 Like

You might be confusing GPLv2 and GPLv3.

From https://www.gnu.org/licenses/gpl-3.0.en.html:

7. Additional Terms.

[…]
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
[…]
e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or

You can protect the trademark on an app licensed under GPLv3.

3 Likes