I'm about to start writing a game framework using LWJGL3. I will only use LWJGL3 internally, so the users of the framework won't be able to access it directly. More over, the build.gradle file will look similar to:
project.ext.lwjglVersion = "3.2.3"
project.ext.lwjglNatives = "natives-windows"
repositories {
mavenCentral()
}
dependencies {
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
implementation "org.lwjgl:lwjgl"
runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
}
I want to emphasize on the implementation and runtimeOnly keywords here.
I found a similar question on the LWJGL3 forum. At some point, a part from the GNU LGPL license was mentioned:
- A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
Does the same apply if I use LWJGL3? Also, from the Wikipedia BSD-3 page it is stated that:
Linking from code with a different licence: Yes
Can I license the framework under MIT?
I am not a lawyer, but from my understanding:
Without express permission from all contributors, you may not re-license LWJGL. However, you are allowed to link to LWJGL, a BSD-licensed project, from an MIT-licensed project. As noted on LWJGL's README, use of each binding is also subject to that binding's original license.
The only reason GPL or LGPL would come into play is if one of the bound libraries is licensed under those licenses.
So the ultimate answer to "Can I license the framework under MIT" is probably no, but that is not necessary to use it in an MIT-licensed project.
Ok, I will probably licence it under BSD-3, but I'm a little bit confused though.
However, you are allowed to link to LWJGL, a BSD-licensed project, from an MIT-licensed project.
So, I can use MIT?
So the ultimate answer to "Can I license the framework under MIT" is probably no
So, I can't use MIT?
but that is not necessary to use it in an MIT-licensed project.
So, I can?
To clarify, I will not copy files from LWJGL3 into my project, but I guess the linking phase will bind it's binaries, so that counts as redistributing..?
I just want to make sure, because if I pick BSD-3, while the MIT was possible, there is no going back.
You cannot use LWJGL under the terms of the MIT license, you must follow the terms of the BSD license. One of those terms allows you to use it in a project with any license you wish, including MIT. Using it in your MIT project does not count as redistribution as far as I am aware, but shading or bundling it would. If you would like to be more certain, you should probably speak with an actual lawyer who knows more of the fine details.
Thank you very much. Picking the BSD-3 is the safest option, although the MIT popularity is attractive..
I will leave this open for a few days before closing.
You can license your framework however you want, as long as you redistribute the LWJGL license.
The project will contain all the source files (unrelated to LWJGL3) and a build.gradle file, like the one above. Does this setup redistributes the LWJGL3 license? (I mean, should I leave Gradle do its work and hope it's redistributing it?) Should I copy the LWJGL3 license into a LICENSE.lwjgl3 file and put it in the repository? All that will be uploaded as a public repository on GitHub (and hopefully its license will be MIT, LICENSE file). Will this be a proper license redistribution?
Sorry, I'm new as an open source author and don't want to mess up your work by picking the wrong license, and also I don't want to get sued..
No, with what you describe, you don't have to add the license to your repo, or do anything else. Only if your framework is distributed to users in a way that bundles the LWJGL source code or binaries, then you need to include the LWJGL license in the bundle.
Oh, I think I get it. My framework on GitHub won't have any LWJGL source files or binaries, just the Gradle dependency on it, which will eventually download the binaries when the project is built, but I won't be uploading any builds, so I think I'm ok here with the MIT license, right? Of course users will eventually build their projects that depend on my framework, but that's not something to be concerned of, right?
Also, I would like to add that I will eventually publish the framework on maven central as a package. Does this complicate things?
Also, I would like to add that I will eventually publish the framework on maven central as a package. Does this complicate things?
Same thing applies. If the package does not bundle LWJGL (merely depends on it, as a separate artifact), you're good.
Most helpful comment
Same thing applies. If the package does not bundle LWJGL (merely depends on it, as a separate artifact), you're good.