What license can I use for my code which uses JUCE?


#1

Since the JUCE source is compiled and used directly in my application, does it mean I also have to use the exact same license as JUCE? Or can I still pick another one of the open-source licenses for my application?

Thanks!


#2

You have to either comply with the GPL, or purchase a JUCE commercial license if you want to ship binaries-only.


#3

No, not commercial.

But on SourceForge for example, one of my other projects uses the MIT license. Can that project use JUCE for the GUI application? Can I use whatever license I want as long as I use one of the approved open source licenses and release the project as open source?


#4

[quote=“StephaneCharette”]No, not commercial.

But on SourceForge for example, one of my other projects uses the MIT license. Can that project use JUCE for the GUI application? Can I use whatever license I want as long as I use one of the approved open source licenses and release the project as open source?[/quote]

You can take an MIT-licensed code base and re-release it as GPL.

If you want to take an existing MIT-licensed code base and combine it with JUCE, then your entire work would be covered by the GPL. However there are special labeling requirements. This article gives you the details:

Maintaining Permissive-Licensed Files in a GPL-Licensed Project: Guidelines for Developers

Anyone who makes changes to the MIT-licensed portion of your combined work would have to make those changes available under the GPL. If you wanted to back-port those changes into your MIT-licensed project then they would need to give you permission to do so, or they could simply make the changes to your MIT-licensed project and migrate them to the combined work.

Any changes made to the JUCE portion of the combined work would of course only be covered under the GPL.

The short answer is that the resulting work must be available under the GPL. With some additional management, changes to the MIT-licensed portion of your project can be made available under the MIT license.


#5

So that means JUCE cannot be easily used in any existing open-source project unless the project is already using the GPL? That seriously hurts the chances of JUCE being used in existing projects!

Is there a way to link to it, like normal LGPL libraries? I don’t want to have to go and re-license projects, or ask established project owners to re-license or dual-license so I can build a decent GUI. Is there really no solution for open source projects – it must be GPL, or it cannot use or link against JUCE?


#6

No, it means that the existing open-source project must be republished under the GPL. This doesn’t mean that the original permissively-licensed project has to go away. It just means that the open source project will be available under two choices of licenses: GPL, and a permissive license.

No. But you can have the other project be dual-licensed. Note, this is how VFLib is licensed. It is published under the MIT license, but it can still be aggregated into a larger work that uses JUCE. The aggregation would be covered under the GPL.

If an established project is published under the MIT, nothing stops you from re-publishing it under the GPL. The MIT license is a “permissive license.” (the GPL is not a permissive license). There are other permissive licenses, like the zLib license, etc… Any project that uses a permissive license can be re-published under the GPL without affecting people’s ability to continue using the library under its original permissive license.

In general you can mix any permissively licensed code with JUCE, without permission from the authors, with the understanding that the resulting work will be covered by the GPL. This does not affect the ability of the permissively licensed code to continue to be developed and published under the permissive license, without being aggregated with JUCE.


#7

That’s what I meant by “easily”. I don’t want to have to republish existing and established open source projects using a new license. I’d be especially reluctant to approach the owners of long-established projects and tell them they need to relicense/republish just because a single person (me) would like to use a library to help write a new GUI.

No. But you can have the other project be dual-licensed.[/quote]

Instead of trying to make other projects relicense to use the GPL, is there any chance JUCE would agree to be dual-licensed so other open-source software projects not using the GPL could at least link against it? If the thought is that other projects wouldn’t mind getting relicensed and republished, would JUCE be willing to make the same change?


#8

Why not? It’s not very hard, you just drop a LICENSE file at the root explaining the situation (RE: the link I provided earlier)

You don’t need to approach anyone. Any established project which uses a permissive license can be published under a GPL compatible license without permission. This is explained in the article I linked.

You’re asking if Jules would release JUCE under the LGPL? I highly doubt it, or else he would have done it already. Doesn’t hurt to ask though…but don’t expect miracles.

Regardless, what you’re trying to do is easily accomplished. Re-read the link I provided. And also note, VFLib is MIT Licensed, so is DSPFilters and yet they are aggregated with JUCE in my open source projects (see my signature).