-
Notifications
You must be signed in to change notification settings - Fork 288
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
Conversation
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" |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
@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. |
@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 |
@goneall @wking The licenses we should be able to mark now are: AFL-1.1 |
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. |
On Sat, Oct 21, 2017 at 03:52:48PM +0000, Kate Stewart wrote:
The licenses we should be able to mark now are…
Differences between your list and the current state of wking/fsf-api [1]:
AFL-1.1 AFL-1.1
AFL-1.2 AFL-1.2
AFL-2.0 AFL-2.0
AFL-2.1 AFL-2.1
AFL-3.0 AFL-3.0
AGPL-1.0 AGPL-1.0
AGPL-3.0 AGPL-3.0
APSL-2.0 <
Apache-1.0 <
Apache-1.1 <
Apache-2.0 <
Artistic-2.0 Artistic-2.0
BSD-2-Clause-Fre | BSD-2-Clause
BSD-3-Clause | CC0-1.0
BSD-3-Clause-Cle <
BSD-4-Clause <
BSL-1.0 <
CDDL-1.0 CDDL-1.0
CECILL-2.0 CECILL-2.0
CECILL-B CECILL-B
CECILL-C CECILL-C
CPAL-1.0 CPAL-1.0
CPL-1.0 CPL-1.0
ClArtistic
Condor-1.1 Condor-1.1
ECL-2.0 ECL-2.0
EFL-2.0 EFL-2.0
EPL-1.0 EPL-1.0
EPL-2.0
EUDatagrid EUDatagrid
EUPL-1.1 EUPL-1.1
FTL | FSFAP
GFDL-1.1 <
GFDL-1.2 <
GFDL-1.3 <
GPL-1.0 <
GPL-2.0 <
GPL-3.0 GPL-3.0
HPND | MIT
IJG <
IPL-1.0 <
ISC <
Imlib2 <
Intel <
LGPL-2.0 <
LGPL-2.1 <
LGPL-3.0 <
LPL-1.02 <
LPPL-1.2 <
LPPL-1.3a <
MPL-1.1 <
MPL-2.0 <
MS-PL <
MS-RL <
NCSA <
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 <
SMLNJ <
SPL-1.0 <
Sleepycat Sleepycat
UPL-1.0 <
Unlicense <
X11 <
XFree86-1.1 <
YPL-1.1 <
ZPL-2.0 <
ZPL-2.1 <
Zend-2.0 <
Zimbra-1.3 <
Zlib <
gnuplot <
iMatix <
xinetd <
Pull requests that continue to fill in SPLITS and IDENTIFIERS are welcome :).
[1]: diff -yW 40 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"])) | .identifiers.spdx' | grep -v null | sort)
|
@wking Working on a PR to add identifiers - should be committing sometime in the next hour or so |
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
On Sat, Oct 21, 2017 at 05:57:50PM +0000, W. Trevor King wrote:
BSD-2-Clause-Fre | BSD-2-Clause
Oops, I'd matched [1,2] with our BSD-2-Clause, but it's really our
BSD-2-Clause-FreeBSD [3]. Fixed in wking/fsf-api@4d127a0..
[1]: https://www.gnu.org/licenses/license-list.html#FreeBSD
[2]: https://www.gnu.org/licenses/license-list.html#FreeBSDDL
[3]: https://directory.fsf.org/wiki?title=License:FreeBSD
|
@wking can you help me understand why you've marked |
On Sat, Oct 21, 2017 at 09:58:34PM +0000, Kate Stewart wrote:
@wking can you help me understand why you've marked
HPND | MIT
in your list - HPND should be added…
It's probably just missing because my SPLITS and IDENTIFIERS are
incomplete. @goneall is filling them in some more right now [1].
… and MIT shouldn't be there.
Our MIT is the FSF's Expat [2,3].
Cheers,
Trevor
[1]: #453 (comment)
[2]: https://github.com/wking/fsf-api/blob/4d127a032c6f6b6307349571aa72e73d6a11edd7/pull.py#L101
[3]: https://lists.spdx.org/pipermail/spdx-legal/2017-October/002287.html
|
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. |
With this and two local commits to address the FSF's
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
And note that their “compatible with the GNU GPL” tag really means “compatible with
So in the absence of explicit FSF language claiming |
It seems odd that @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. |
On Tue, Oct 24, 2017 at 05:46:41PM +0000, goneall wrote:
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.
Instead of the FSF maintaining the license mapping, I'd rather the FSF
provide a way to retrieve the text they considered for a given license
entry. For example, they currently have links to [1] and similar,
which we provide in the mock API:
$ curl -s https://wking.github.io/fsf-api/Expat.json | jq -r .uri
http://directory.fsf.org/wiki/License:Expat
But scraping the license text out of the wiki page seems brittle (and
some license entries link to non-wiki pages, e.g. [2] linking [3]).
If they provided easy access to their text, we could use our matching
logic to automatically calculate the equivalent SPDX expression (if
any), as discussed in #418. Then nobody needs to maintain the SPDX ↔
FSF ID mapping by hand, and anyone can verify an asserted mapping.
And I would be happy to transfer wking/fsf-api over to the FSF, or to
deprecate it in favor of an API that they develop from scratch, if
either of those will help move the FSF towards maintaining their own
canonical API.
[1]: https://directory.fsf.org/wiki/License:Expat
[2]: https://www.gnu.org/licenses/license-list.html#CPAL
[3]: https://www.socialtext.net/open/cpal_license_in_wikitext
|
Since this is externally managed by an API, I'm closing this PR. No need to maintain the flag in the XML source. |
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
Signed-off-by: Gary O'Neall [email protected]