QData / TextAttack

TextAttack 🐙 is a Python framework for adversarial attacks, data augmentation, and model training in NLP https://textattack.readthedocs.io/en/master/
https://textattack.readthedocs.io/en/master/
MIT License
2.95k stars 395 forks source link

MIT license is invalid - multiple GPL3 dependencies used #718

Open OGordon100 opened 1 year ago

OGordon100 commented 1 year ago

This package uses a small number of GPL/lGPL dependencies/sub-dependencies.

My understanding is that this means that the MIT license of this package is invalid, as GPL is a viral/copyleft license.

Packages are:

According to python-license-checker:

    FuzzyTM (2.0.5): ['GNU General Public License v3.0']
      dependencies:
          FuzzyTM << gensim << bpemb << flair << textattack
          FuzzyTM << gensim << flair
    gensim (4.3.0): ['LGPL-2.1-only']
      dependencies:
          gensim << bpemb << flair << textattack
          gensim << flair
    language-tool-python (2.7.1): ['GNU GPL']
      dependency:
          language-tool-python << textattack
    num2words (0.5.12): ['GNU Library or Lesser General Public License (LGPL)']
      dependency:
          num2words << textattack
gojomo commented 1 year ago

Gensim is released under the LGPL, which allows re-use in non-copyleft projects, so no change is required by TextAttack to conform with Gensim's licensing. (This same analysis likely applies to LGPL-licensed num2words.)

It appears FuzzyTM is only being pulled-in here because Gensim was declaring FuzzyTM as a prerequisite. That declaration was in error, and has been corrected in the recently-released gensim-4.3.1.

That leaves language-tool-python, and while that declares a plain-GPL license, it also appers to be maintained by the primary contributor to TextAttack, @jxmorris12. Further, it's a fork of a long-untouched predecessor project, https://github.com/myint/language-check/, which seems to be dual GPL/LGPL-licensed, and a thin wrapper around https://github.com/languagetool-org/languagetool, which is LGPL-licensed. So it's unclear if any rightsholdrs' wishes have been violated here – but choosing to mark language-tool-python as also LGPL-licensed could help minimize any perceptions of GPL-disallowed uses.

jxmorris12 commented 1 year ago

Thanks for the information @gojomo - I can change the license to language_tool_python to LGPL, I don't mind.