Jemt / Fit.UI

Fit.UI is a JavaScript based UI framework built on Object Oriented principles
http://fitui.org
GNU Lesser General Public License v3.0
19 stars 7 forks source link

LGPL vs. bundling and minification: dual licensing request #196

Open Mhbuur opened 1 year ago

Mhbuur commented 1 year ago

Section 4 of the LGPL license states that

4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

This means that if you bundle or minify Fit.UI, you change the code, and changed code must be licensed as LGPL too. In particular with bundling it is unclear how far this extends.

We suggest that you dual license Fit.UI with MIT or change to MIT completely.

FlowIT-JIT commented 1 year ago

@Mhbuur The license you are linking to is not LGPL 3 but GPL 2. Here is the LGPL license: https://github.com/Jemt/Fit.UI/blob/master/LICENSE

Fit.UI includes a custom build of CKEditor 4 (built using their online builder) and a custom build of jQuery UI (built using their online downloader).

CKEditor 4 has been enriched with custom plugins. Here are all the plugins:

TODO: Double check version history for all plugins - there might be more changes - compare with original source.

The license for CKEditor 4 is included here: https://github.com/Jemt/Fit.UI/blob/master/Resources/CKEditor/LICENSE.md The CKEditor 4 code itself remains untouched.

jQuery UI includes jQuery and both have been modified as described here: https://github.com/Jemt/Fit.UI/blob/master/Resources/JqueryUI-1.11.4.custom/README-FitUiCustomJqueryUiBuild.txt

License terms for jQuery and jQuery UI can be found here: https://github.com/Jemt/Fit.UI/blob/29fd1171ed8bb2d6359cfac8d85242966da614e9/Resources/JqueryUI-1.11.4.custom/external/jquery/jquery.js#L9 https://github.com/Jemt/Fit.UI/blob/29fd1171ed8bb2d6359cfac8d85242966da614e9/Resources/JqueryUI-1.11.4.custom/jquery-ui.js#L4 https://github.com/Jemt/Fit.UI/blob/29fd1171ed8bb2d6359cfac8d85242966da614e9/Resources/JqueryUI-1.11.4.custom/jquery-ui.js#L22

The package produced by jQuery UI's download builder does not include the MIT license, but it can be found here: https://github.com/jquery/jquery-ui/blob/1-11-stable/LICENSE.txt

FlowIT-JIT commented 1 year ago

Can we simply change the license from LGPL to MIT? It seems so: https://opensource.stackexchange.com/questions/7904/can-your-mit-library-use-an-lgpl-library

FlowIT-JIT commented 1 year ago

My primary concern is not that we violate the LGPL license in how we "use" the libraries, but the fact that they are included with Fit.UI. So while we do dynamically (and not statically) linking, we would still make software available under MIT that "hides" the fact that LGPL is contained.

FlowIT-JIT commented 1 year ago

According to https://fossa.com/blog/open-source-software-licenses-101-lgpl-license/

A note on static vs. dynamic linking: The LGPL has different requirements depending on how the library is integrated with the remainder of the program. Generally, dynamic linking of LGPL code is considered best practice, as static linking makes meeting the license requirements more complicated. While it is possible to comply with LGPL code that is integrated into proprietary code as a statically linked library, it requires more effort. There is a kind of safe harbor for using LGPL code as a dynamically linked library; for statically linked libraries, a distributor must offer access to not only the library’s source code, but other information or materials necessary to rebuild the program. However, many programming languages have no equivalent of static linking, so that makes the dynamic linking safe harbor extremely helpful and effective in LGPL compliance.

From my understanding, we should be good in this regard. We only do dynamic linking, and all changes to LGPL code is available in source form.