UE5 plugin and JSBSim license/legal clarity + Dynamic Library info #631
Replies: 14 comments 21 replies
-
I'm no lawyer but AFAICT the license that applies to a source file is enforced by the file content itself (i.e. the license is generally mentioned at the header of the file). This is the reason why the applicable license should be written in each single file. I'm pretty sure that the GitHub repository which hosts the source code does not enforce any license on the content of the repo, it is just an indication of the applicable license. Regarding whether one could distribute the JSBSim UE5 plugin with an UE5 product, I'll let @AlbanBERGERET-Epic answer this question. |
Beta Was this translation helpful? Give feedback.
-
Correct, for the most part Alban would just need to add a license to his plugin that is compatible with Unreal Engine. I'd suggest Alban consider adding a MIT license in his Readme.
But even adding a license to the plugin does not fully solve all potential license issues. The plugin (when distributed as software using JSBSim) will still need to meet the JSBSim LGPL license requirements.
The plugin in it's current static link format would require any Unreal Engine developer using the plugin to provide all of their project's source files upon request, because any changes to the library requires a re-compile of their Unreal Engine project. While for some devs this is not a problem but for other devs this is a problem, because for example if they are using non-open source 3d models, they cannot freely share those source files in most cases. This is the same reason the Alban cannot publicly share the entire "Antoinette Project", as it contains paid assets in the source files. Changing the plugin to a dynamic link library would allow for greater general use of JSBSim with Unreal Engine. (This is something I would be willing to implement myself in the following months, using the plugin as a starting point but first Alban would need to provide a suitable license for his plugin, as first noted.) |
Beta Was this translation helpful? Give feedback.
-
Copy, |
Beta Was this translation helpful? Give feedback.
-
Hi @bcoconni and @gallonmate I had a quick look at building JSBSim as a DLL, but the DLL file is generated without any import library (.lib). Do you know if JSBSim has ever been compiled as a DLL? That makes me think about something else, maybe silly. Is there a specific reason for using the LGPL License in JSBSim? It would be much easier if it was a truly open license... |
Beta Was this translation helpful? Give feedback.
-
Hopefully bcoconni or others can provide more direct help with JSBSim. In the mean time here are some references I found of JSB used as DLL And here's another very much outdated repo |
Beta Was this translation helpful? Give feedback.
-
Well. This is all unfortunate. I was planning on making my iteration/integration with a commercial project. Let me know if this license changes or anything. |
Beta Was this translation helpful? Give feedback.
-
FYI I have just created the PR #644 to allow JSBSim being compiled as a DLL. This is WIP at the moment but should be merged very soon. |
Beta Was this translation helpful? Give feedback.
-
I'll take a look in the next day or so. |
Beta Was this translation helpful? Give feedback.
-
Thanks @bcoconni |
Beta Was this translation helpful? Give feedback.
-
To everyone: the JSBSim plugin for UE can now be used safely for proprietary and open source applications since JSBSim can now be compiled as a DLL and @AlbanBERGERET-Epic updated the plugin to use the DLL. Quoting @AlbanBERGERET-Epic's from PR #650:
I hope this will address all the concerns that were raised in this discussion 😄 Enjoy ! |
Beta Was this translation helpful? Give feedback.
-
Sorry to bring up the topic once again. After double checking the files, I realized many pieces of code are licensed as GPL, which is technically incompatible with JSBSim's license of LGPL. While LGPL can be used in GPL projects, GPL cannot be used in LGPL. The list of incompatible licensed files/code can be found with a search of the repo using the following search: license -lesser
|
Beta Was this translation helpful? Give feedback.
-
The UE plugin builds the JSBSim C++ source code into a dynamic library (DLL on Windows). The Tests aren't built into the DLL, they're stand-alone tests that are run to test for regressions etc. In terms of the Aircraft and Engine files none of them are explicitly required, the developer building a UE based application will decide which aircraft and engine models to include, so it's up to the developer to confirm that they only include/bundle aircraft and engine models that have a compatible license. Having said that given they're data files which aren't compiled into a binary I'm not sure if including data files which have a GPL license would even be an issue. The developer would be bundling them with or without modifications and the end user would have a copy of them to modify themselves, see what changes if any the developer made to them etc. The python directory contains code to generate a separate python binding DLL (shared library) to expose a python interface to JSBSim, but this isn't required for the UE plug-in. So the only potential issue I see is some of the source code in |
Beta Was this translation helpful? Give feedback.
-
By the way @gallonmate, I have reworded your "Edit 2" in the top comment of this discussion because it was untruthful:
Please check your facts before writing false claims. |
Beta Was this translation helpful? Give feedback.
-
@bcoconni I apologize. This was was not my intention to sound that way. Thank you for the edit. In the future I will try to use better words for my discussion comments and I will research better. Thank you @seanmcleod & @bcoconni for clarification on the different file usages. After re-reading every license in the entire repo. I have no further question, except for one: Are the following files in Systems folder compiled with JSBSim? |
Beta Was this translation helpful? Give feedback.
-
Edit2 June/19/2022: All licenses are good & compatible with current version of the UE plugin's usage of JSBSim. Be mindful of JSBSim's open source nature, it's license And the authors/licenses for each aircraft/engine used
Licenses:
JSBSim has a LGPL-2.1 license
Unreal Engine 5 has a EULA, which does not allow LGPL works in UE5 packaged products, except if the LGPL work is dynamically linked.
JSBSim in general can be used with UE5, if it is dynamically linked.
The issue is the UE5 plugin is also currently in the JSBSim repository and thus falls under the LGPL 2.1 license. Meaning the UE5 Plugin itself is now LGPL.
While this is not an issue for single users who wish to build UE5 based projects at home, business, or schools, etc. It is an issue if that user wants to share/distribute their packaged UE5 build containing the plugin.
In summary a UE5 packaged product could not be distributed with the current UE5 plugin.
If someone wanted to distribute a UE5 package/product then the UE5 plugin would need a license separately from JSBSim and it would need to be a license that fits the UE5 EULA, such as MIT, BSD, Apache, etc.
Edit: While the user themselves might not be in violation of the LGPL license if they provided source code of their UE5 project, they would still be in violation of the UE5 EULA which prevents LGPL licensed works in a distributed UE5 packaged.
Beta Was this translation helpful? Give feedback.
All reactions