Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add FsfLibre flag to GPL-2.0 #453

Closed
wants to merge 1 commit into from
Closed

Add FsfLibre flag to GPL-2.0 #453

wants to merge 1 commit into from

Conversation

goneall
Copy link
Member

@goneall goneall commented Oct 19, 2017

Signed-off-by: Gary O'Neall [email protected]

Signed-off-by: Gary O'Neall <[email protected]>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<SPDXLicenseCollection xmlns="http://www.spdx.org/license">
<license isOsiApproved="true" licenseId="GPL-2.0"
<license isOsiApproved="true" isFsfLibre="true" licenseId="GPL-2.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I've said earlier, I'd much rather be pulling this from an FSF API. In the absence of such an API (the current situation) I think we should put this information in a mock FSF API which we can hand over to the FSF when they're ready to step up and maintain it. I really don't like baking other people's metadata into our root data repository. I would much rather this information be included in license-list-data after being pulled from the (mock) FSF API, instead of including the metadata here.

I am ok baking in an FSF license ID (if they decide to diverge from SPDX IDs in their API), at least until we address #418.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree in principle, but I don't want to screen scrape for the information. We could have a mock API that would work from a config file. It should present the data through a web API, preferably REST based

Copy link
Contributor

@wking wking Oct 20, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was imagining we dump some JSON into GitHub. I'll sketch that out tonight.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JSON works. If you put together sending side - I can update the SPDX license generator to use it.
@kestewart - Can you just put together a list of the licenses you think are FSF Libre?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll pull the list using JavaScript, as I showed on the mailing list.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@goneall - sure. Just a flat text file of one SPDX-license-identifier per line for the subset that are isFsfLibre?

@goneall
Copy link
Member Author

goneall commented Oct 20, 2017

@kestewart Yes - just a flat file for now. In the long run, we would like to get FSF to own the list themselves and also own the API code.

@wking
Copy link
Contributor

wking commented Oct 20, 2017

@kestewart, @goneall, I've pushed my mock JSON API to https://github.com/wking/fsf-api. You can pull the list of all of their identifiers from https://wking.github.io/fsf-api/licenses.json and get a specific license from (for example) https://wking.github.io/fsf-api/Expat.json. It still needs work filling in the SPLITS and IDENTIFIERS information, which expands cases where the FSF uses one anchor for multiple licenses and maps their identifiers to ours.

@kestewart
Copy link

@goneall @wking The licenses we should be able to mark now are:

AFL-1.1
AFL-1.2
AFL-2.0
AFL-2.1
AFL-3.0
AGPL-1.0
Apache-1.0
Apache-1.1
Apache-2.0
APSL-2.0
Artistic-2.0
BSL-1.0
BSD-2-Clause-FreeBSD
BSD-3-Clause
BSD-3-Clause-Clear
BSD-4-Clause
CECILL-2.0
CECILL-B
CECILL-C
CDDL-1.0
CPAL-1.0
CPL-1.0
Condor-1.1
EPL-1.0
ECL-2.0
EFL-2.0
EUDatagrid
EUPL-1.1
FTL
AGPL-3.0
GFDL-1.1
GFDL-1.2
GFDL-1.3
GPL-1.0
GPL-2.0
GPL-3.0
LGPL-2.1
LGPL-3.0
LGPL-2.0
gnuplot
HPND
IPL-1.0
iMatix
Imlib2
IJG
Intel
ISC
LPPL-1.2
LPPL-1.3a
LPL-1.02
MS-PL
MS-RL
MPL-1.1
MPL-2.0
NOSL
NPL-1.0
NPL-1.1
Nokia
OLDAP-2.3
OLDAP-2.7
OSL-1.0
OSL-1.1
OSL-2.0
OSL-2.1
OSL-3.0
OpenSSL
PHP-3.01
Python-2.0
QPL-1.0
RPSL-1.0
Ruby
SGI-B-2.0
Sleepycat
SMLNJ
SPL-1.0
Unlicense
UPL-1.0
NCSA
X11
XFree86-1.1
xinetd
YPL-1.1
Zend-2.0
Zimbra-1.3
Zlib
ZPL-2.0
ZPL-2.1

@kestewart
Copy link

kestewart commented Oct 21, 2017

Note: there are some licenses on their list that aren't in ours, as well as some its not clear and research is going to be needed - but we can certainly start with the ones I've listed.

@wking
Copy link
Contributor

wking commented Oct 21, 2017 via email

@goneall
Copy link
Member Author

goneall commented Oct 21, 2017

@wking Working on a PR to add identifiers - should be committing sometime in the next hour or so

wking added a commit to wking/fsf-api that referenced this pull request Oct 21, 2017
Based on Kate's list [1].  Looking more closely, the FSF's FreeBSD
text [2] includes the "The views and conclusions..." paragraph that is
unique to the BSD-2-Clause-FreeBSD [3].  The FSF's FreeBSD page [2]
also links [4].

[1]: spdx/license-list-XML#453 (comment)
[2]: https://directory.fsf.org/wiki?title=License:FreeBSD
[3]: https://github.com/spdx/license-list-XML/blob/e5da40e25becb0aa7626d3f62649d2387284a623/src/BSD-2-Clause-FreeBSD.xml#L38-L40
[4]: https://www.freebsd.org/copyright/freebsd-license.html
@wking
Copy link
Contributor

wking commented Oct 21, 2017 via email

@kestewart
Copy link

@wking can you help me understand why you've marked
HPND | MIT
in your list - HPND should be added, and MIT shouldn't be there.

@wking
Copy link
Contributor

wking commented Oct 21, 2017 via email

@goneall
Copy link
Member Author

goneall commented Oct 21, 2017

I made some progress on adding splits and identifiers, but ran out of time. I just created a PR with the work so far. I can pick up where I left off later today or tomorrow.

@wking
Copy link
Contributor

wking commented Oct 23, 2017

With this and two local commits to address the FSF's Ruby and PythonOld, fsf-api will diverge from @kestewart's earlier list with:

$ diff kstewart <((echo '['; A=; for x in *.json; do if test licenses.json = "$x"; then continue; fi; test -n "$A" && echo ','; A=1; cat $x;done; echo ']') | jq -r '.[] | select(.tags | contains(["libre"])) | select(.identifiers.spdx) | .identifiers.spdx' | sort)
17a18,21
> BitTorrent-1.1
> CC-BY-4.0
> CC-BY-SA-4.0
> CC0-1.0
23a28
> ClArtistic
27a33
> EPL-2.0
29a36
> FSFAP
34d40
< GPL-1.0
35a42
> GPL-2.0+ WITH eCos-exception-2.0
38a46
> IPA
43d50
< LGPL-2.0
48a56
> MIT
57a66,67
> ODbL-1.0
> OFL-1.1
76a87,89
> Vim
> W3C
> WTFPL

So fsf-api lists a number of additional SPDX identifiers as FSF-libre. The only SPDX IDs given by @kestewart which are not covered by fsf-api are GPL-1.0 and LGPL-2.0. I expect the FSF considers those compatible with the GPL in some cases, although I don't see them address that directly in their current list or compat table. The do explicitly discuss GPL-2.0, where they say:

Please note that GPLv2 is, by itself, not compatible with GPLv3. However, most software released under GPLv2 allows you to use the terms of later versions of the GPL as well…

And note that their “compatible with the GNU GPL” tag really means “compatible with GPL-3.0”. For example, they list Apache-2.0 under compatible and then say:

This is a free software license, compatible with version 3 of the GNU GPL.

Please note that this license is not compatible with GPL version 2, because it has some requirements that are not in that GPL version…

So in the absence of explicit FSF language claiming GPL-3.0 compatibility for the GPL-1.0 and LGPL-2.0 (possibly under some “usually or later” extenuating circumstances), I've left those out of fsf-api for now.

@goneall
Copy link
Member Author

goneall commented Oct 24, 2017

It seems odd that GPL-1.0 and LGPL-2.0 is not on the list. I would like to ask FSF to review the FsfLibre list and in particular GPL-1.0 and LGPL-2.0.

@kestewart Did you want to take the lead on this since you and @jlovejoy have been working with FSF on other topics? An ideal outcome would be for FSF to own a list of FSF license ID's and their mapping to SPDX license ID's as well as indicating if the license is FsfLibre. If this were machine readable and stored in a repository, we could replace the HTML scraping with something more reliable and authoritative from the FSF.

@wking
Copy link
Contributor

wking commented Oct 24, 2017 via email

@goneall
Copy link
Member Author

goneall commented Nov 29, 2017

Since this is externally managed by an API, I'm closing this PR. No need to maintain the flag in the XML source.

@goneall goneall closed this Nov 29, 2017
@jlovejoy jlovejoy deleted the addfsffreegpl branch December 27, 2017 23:33
wking added a commit to wking/license-list-XML that referenced this pull request Dec 29, 2017
This had been added in 378fe01 (Update all source files to the new
XML format and add in the tools from the schemadev branch,
2017-10-17), but we later decided that we didn't need it [1] because
we could lean on our mock FSF API [2].

[1]: spdx#453 (comment)
[2]: https://github.com/wking/fsf-api
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants