link-grammar icon indicating copy to clipboard operation
link-grammar copied to clipboard

LGPL-2.1 is a deprecated SPDX license

Open chenrui333 opened this issue 4 years ago • 8 comments

LGPL-2.1 is deprecated by SPDX, please consider using LGPL-2.1-only or LGPL-2.1-or-later. Thanks!

relates to Homebrew/homebrew-core#76926

chenrui333 avatar May 10 '21 04:05 chenrui333

also relates to https://github.com/Homebrew/homebrew-core/pull/84708

chenrui333 avatar Sep 05 '21 04:09 chenrui333

cc @linas

chenrui333 avatar Sep 05 '21 04:09 chenrui333

Possibly commit a613961489bbeaf4333a53c6139ab6a9adb363a9 fixes the install path issue in Homebrew/homebrew-core#84708

linas avatar Sep 08 '21 02:09 linas

I have no clue what Homebrew/homebrew-core#76926 means, or what I can do to fix it. There's no SPDX anywhere in the source that I know of.

linas avatar Sep 08 '21 02:09 linas

@linas 👋 I think what you need to do is to specify the header part in either the README or in the license part of each file (if they got licensed differently), let me know if that makes sense.

chenrui333 avatar Feb 20 '22 18:02 chenrui333

Or you can probably the man page to include license field and specify the license identifier.

chenrui333 avatar Feb 20 '22 19:02 chenrui333

Since this issue is still open almost three years later, I'll add this comment as a reminder to do something about it.

SPDX license identifiers are becoming the customary way in which license information is communicated, and Homebrew evidently uses these labels on its packages. SPDX used to define an identifier LGPL-2.1 but it is deprecated because it could be unclear whether this meant that a project was licensed under LGPL version 2.1 only and no other version, or under LGPL version 2.1 or any later version at the user's option. New identifiers LGPL-2.1-only and LGPL-2.1-or-later were introduced to resolve the ambiguity.

The ambiguity might remain in this project, however: is link-grammar licensed "under the LGPL 2.1 only" or "under the LGPL 2.1 or any later version"?

The web site says LGPL 2.1 but does not say "only" or "or any later version" so this might be unclear:

https://github.com/opencog/link-grammar-website/blob/a177a3766f65e6f2450e81bac5541c47f73944b2/index.html#L687-L691

Source code headers say to look at the LICENSE file:

https://github.com/opencog/link-grammar/blob/3a2612761f17e2579cb213a02aa1cef394f98763/link-grammar/error.c#L7-L8

The LICENSE file is just the generic LGPL 2.1 file which in particular says:

https://github.com/opencog/link-grammar/blob/3a2612761f17e2579cb213a02aa1cef394f98763/LICENSE#L419-L425

The third option, not mentioned in the above paragraph but implied, is that if a project indicates a license version number but does not specifically mention allowing "any later version", then only that version would apply. So I guess that is the answer for link-grammer: it is licensed LGPL 2.1 only. But you could make that clearer by saying so explicitly in the README, web site, etc.

I also recommend adjusting your code headers. Simply pointing to the LICENSE file is ambiguous since the LICENSE file would be the same whether you have chosen to license the project "LGPL 2.1 only" or "LGPL 2.1 or later". A recent practice is to use SPDX license identifiers in the header of every file.

Incidentally, source code headers also say "All rights reserved" which has been obsolete for decades:

https://github.com/opencog/link-grammar/blob/3a2612761f17e2579cb213a02aa1cef394f98763/link-grammar/error.c#L5

ryandesign avatar Apr 20 '24 04:04 ryandesign

The -or-later variant works for me. I'll merge any pull request that fixes everything to say all the right things in all the right ways.

linas avatar Apr 25 '24 19:04 linas