DraganRatkovich / newfon

Multilingual speech synthesizer
GNU General Public License v2.0
4 stars 2 forks source link

Licenses mess #1

Closed tseykovets closed 1 year ago

tseykovets commented 1 year ago

Need to fix the mess with declaring source code licenses:

  1. The repository contains the text of the MIT license with unexpected copyrights. There is a suspicion that this file was copied from the project https://github.com/fongandrew/hydeout/ without any editing.
  2. The .py files declare the GPL license, not an MIT license, which contradicts the statements in the newfonlicense*.txt files.
  3. If you plan to license the speech driver under the MIT terms, this violates the NVDA's license (see detailed explanations below).

NVDA License Violation

The add-on's source code must be licensed under a license that is compatible with the NVDA's license.

Thus, the speech driver licensed under the MIT violates the NVDA's license.

DraganRatkovich commented 1 year ago

Hello,

@tseykovets First of all, thanks for reminding me about the license, as today I completely forgot to change the license from GPL to MIT license, as my main goal today was to distribute Newfon according to the addon-datastore, that became available recently. I'll definitely change it later.

As for the text of the license, I will look at it and change it if there is anything to change, because I did not copy the text of the license from any project.

Finally, as discussed recently with one of the Newfon developers, the developer told me that there are no problems with the Newfon license because the scripts have been changed from GPL to MIT and the compiled source code is distributed as is, without any decompilation. because it was written in an old version of the programming language and no one cares about maintaining it. In addition, there is an improved phonophone implementation called RU_TTS, so there is nothing to worry about with the license.

tseykovets commented 1 year ago

Hello @DraganRatkovich

Maybe I didn't explain clearly enough.

The speech driver for NVDA cannot be licensed under the MIT terms.

You should return the GPL license for the speech driver.

By distributing the speech driver under the MIT terms, you are violating the NVDA's license.

The speech driver inherits the NVDA core classes, and you must distribute this source code under the terms of the GPL.

These are the GPL license requirements. This is also confirmed in the NVDA documentation: see the "Add-on submission checklist" in the NVDA Add on Development Guide.

The binary library of Newfon also has certain issues with license purity. In a good way, it should not be in the repository, as is done in the IBMTTS driver, Add-on. But that's a separate issue. At least it doesn't violate the license of the active project.

ru_tts is a completely different project, the license and copyrights of which was directly agreed with all developers and copyright holders. Including with the copyright holders of the original Phonemophone synthesizer developed in 1990-1991 years. The Nufon license doesn't even have a mention of the copyright holders of the original Phonemophone synthesizer. The legal cleanup of ru_tts does not apply to Newfon.

kvark128 commented 1 year ago

Tell me, where can I find out more about the incompatibility of MIT and GPL licenses? I always thought that the MIT license is GPL compatible.

tseykovets commented 1 year ago

@kvark128

MIT and GPL are compatible when they license two separate parts of a project. Also, MIT code can be relicensed under the GPL, but GPL code cannot be relicensed under MIT.

In the case of NVDA add-ons that import kernel modules, we are faced with class or object inheritance. Inheritance is the creation of derivative work based on the code of inherited classes or objects.

When you license classes inherited from NVDA under MIT, you're kind of relicensing GPL code into MIT, which is not allowed.

In theory, you can license part of the NVDA add-on under MIT as long as that part does not inherit the NVDA core classes. However, it is not possible to write a speech driver in this way.

In Newfon, it is possible to license under MIT separate files for additional languages in the languages subfolder, as they appear to be fairly isolated from the NVDA core. But the speech driver must be under the GPL or other fully compliant virus copyleft license.

Class or object inheritance is a special case for the GPL. The Free Software Foundation provided specific clarifications on this subject.

In an object-oriented language such as Java, if I use a class that is GPLed without modifying, and subclass it, in what way does the GPL affect the larger program? Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPLed class.

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

See also https://www.gnu.org/licenses/lgpl-java.html

DraganRatkovich commented 1 year ago

Fixed in b3e0735