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 license to package info.rkt files #12

Merged
merged 2 commits into from Oct 22, 2021

Conversation

LiberalArtist
Copy link
Contributor

Related to racket/racket#3760.

Note: I haven't attempted to characterize the license of srfi-doc-nonfree.

@samth
Copy link
Sponsor Member

samth commented Oct 14, 2021

I think many of the SRFIs are licensed under an MIT-like license, as here: https://srfi.schemers.org/srfi-71/srfi-71.html

@LiberalArtist
Copy link
Contributor Author

LiberalArtist commented Oct 16, 2021

Right, SRFIs since 2005 have been under the MIT license, and all but two of the earlier SRFIs were re-licensed under the MIT license (according to @dvanhorn, in https://srfi-email.schemers.org/srfi-announce/msg/2652023/). I think (Apache-2.0 OR MIT) works fine for those, though I guess it could more pedantically be (MIT AND (Apache-2.0 OR MIT)).

The issue is with the srfi-doc-nonfree package, as raised in #4 and further discussed in #5 and #7. I was going to need to follow up on this anyway, since I've sort of stumbled into packaging Racket for Guix, which has similarly strict (though substantively different) license rules as Debian and Fedora. As I refresh my memory, there are two, slightly different, issues:

  1. SRFI 5 is one of the two SRFIs which, per @dvanhorn's announcement, "remain licensed under the RFC-style license since we have not been able to contact the authors"—in this case, Andy Gaynor. Ideally, of course, someone would find him, but we presumably have to move forward assuming that won't happen. The old SRFI license, which apparently was based on the IETF RFC license, doesn't have a SPDX identifier:

    This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Scheme Request For Implementation process or editors, except as needed for the purpose of developing SRFIs in which case the procedures for copyrights defined in the SRFI process must be followed, or as required to translate it into languages other than English.
    The limited permissions granted above are perpetual and will not be revoked by the authors or their successors or assigns.
    This document and the information contained herein is provided on an "AS IS" basis and THE AUTHOR AND THE SRFI EDITORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

  2. SRFI 29 is more complicated. [Here I confused SRFI 32, which is ok now, with SRFI 29, which is still a problem. See https://github.com/add license to package info.rkt files #12#issuecomment-949704640 below for the real state of SRFI 29.] There is an MIT-licensed version at https://srfi.schemers.org/srfi-32/srfi-32.html, but you (@samth) said in srfi-lib/srfi/32/sort.txt, srfi-doc/srfi/scribblings/srfi-{5,29}.html licensing looks incompatible with LGPL  #4 (comment) that:

    So, the version in the source code for SRFI 32 is somewhat newer and in line with the source code, but I can't find the source of it at all. The source on Olin's web site, and on the SRFI site, has an earlier version of the text. I can't find the text we have anywhere on the internet.

    (This comment gives me some sympathy for the intent of the original license.)

    It's possible the situation may have changed: https://srfi.schemers.org/srfi-32/srfi-32.html says it is a (withdrawn!) version from 2003 converted to HTML in 2019 (so after @samth looked in 2017), whereas the version in srfi-doc-nonfree says:

    <!-- Created: Tue Sep 29 19:20:08 EDT 1998 -->
    <!-- hhmts start -->Last modified: Mon Jun 17 12:00:08 Pacific
    Daylight Time 2002 <!-- hhmts end --> <br>

    I will investigate that further. If we can find an MIT-licensed version of SRFI 32 that corresponds to what Racket ships, that would be ideal.

As I said in #7 (comment) (and tangentially in #8), I'm prepared to do some work to improve the documentation situation for users of Debian, Guix, Fedora, and other distros with strict license policies, including writing replacement documentation and falling back gracefully to docs.racket-lang.org versions if the documents aren't installed locally. I'd like I do along those lines works with all of the various policies, with minimal patching and the best possible experience for users. Probably I should ping @bremner and @dbenoit17 here.

My understanding of the Debian Free Software Guidelines is that the restrictions on modification in the old SRFI license would prevent distributing these documents in main, but I think it would be ok to link to online versions, like my Debian-packaged Emacs does for CC-BY-ND-4.0 essays. I'm less sure about the Free System Distribution Guidelines that apply to Guix: they allow some non-modifiable things, but in other cases (I hope not this one!) don't allow linking to things they can't distribute. I will need to open a discussion on the mailing list, which would probably be useful anyway, Guix having a high concentration of Schemers who care about licensing. I'm least sure about Fedora's policy: it's been well over a decade since I've spent time on the RPM side of things.

That leaves the question of what to put in srfi-doc-nonfree/info.rkt:

  • I don't know any SPDX identifier that would cover the old SRFI license. If someone does, we should use that.
  • I guess we could submit a request for SPDX to add the license, but I think it's less compelling than add license to package info.rkt files (special case) r5rs#4, since it's strictly historical, and my goal would be to isolate the restrictively-licensed stuff as much as possible.
  • My inclination would be to leave the file without (define license ...) at all, and just add a comment explaining the situation. The lack of license information would signal an issue to anyone looking, and it seems like less work than properly encoding the problematic license.

@samth
Copy link
Sponsor Member

samth commented Oct 18, 2021

I vote for the add-a-comment approach (and I'm happy to hear that you might be able to fix the problem entirely).

@samth
Copy link
Sponsor Member

samth commented Oct 18, 2021

As far as I can tell, the text in srfi-32.txt is identical to the text at https://srfi.schemers.org/srfi-32/srfi-32.html, so maybe that newer version has resolved the problem, which would be nice.

Also, your discussion mentions SRFI 29 but then talks about SRFI 32. Which do you mean?

@LiberalArtist
Copy link
Contributor Author

As far as I can tell, the text in srfi-32.txt is identical to the text at https://srfi.schemers.org/srfi-32/srfi-32.html, so maybe that newer version has resolved the problem, which would be nice.

Also, your discussion mentions SRFI 29 but then talks about SRFI 32. Which do you mean?

Ah, that was me getting confused: SRFI 32's issues were fixed by @dbenoit17 in #5.

SRFI 29 is the one that is still in srfi-doc-nonfree. According to @dvanhorn in https://srfi-email.schemers.org/srfi-announce/msg/2652023/, it should be covered by the MIT license, but the version at https://srfi.schemers.org/srfi-29/srfi-29.html, like the version in this repository, still has the old SRFI license. I'll look into the situation further, and also edit my comment here to reduce confusion.

SRFI 5 is as I described above.

@LiberalArtist
Copy link
Contributor Author

I've sent a message at https://srfi-email.schemers.org/srfi-discuss/msg/17981856/ (also at https://srfi-email.schemers.org/srfi-29/msg/17981842/) asking to clarify that the SRFI 29 document is under the MIT license.

In any case, for now, I'll update this PR to add a comment addressing the status quo.

Other minor changes:

  - "srfi-doc/srfi/scribblings/srfi.scrbl":
    Use HTTPS for the SRFI website.

  - "srfi-lib-nonfree/info.rkt":
    Explicitly state in `pkg-desc` that this package is free
    software (since it is an empty package for backward
    compatibility).

related to racket/racket#3760
Add comments explaining the restrictive license on the SRFI 5
and (maybe) SRFI 29 documents (see
<https://srfi-email.schemers.org/srfi-29/msg/17982886/> for details on
the latter). Since this license doesn't have an SPDX identifier,
we don't define `license` in "srfi-doc-nonfree/info.rkt" for now.

To clarify that the Racket and Scribble files in "srfi-doc-nonfree"
are freely licensed, mark each one with machine-readable SPDX comment
headers, in addition to the more detailed explanations.

Fix a typo in "LICENSE" and rename it to "LICENSE.txt" for consistency.

Related to racket#4
Related to racket#5
Related to racket#7
Related to racket#12
@LiberalArtist
Copy link
Contributor Author

LiberalArtist commented Oct 22, 2021

I've force-pushed new commits (and also rebased, because apparently I'd started from a stale fork).

@samth samth merged commit 736ae1a into racket:master Oct 22, 2021
LiberalArtist added a commit to LiberalArtist/srfi that referenced this pull request Nov 14, 2021
This commit moves the document and the associated Scribble
section from `srfi-doc-nonfree` to `srfi-doc`.

Thanks to @arthurgleckler for contacting Scott G. Miller
and confirming his permission to update the license.

The copy of `srfi-29.html` in this commit is taken directly from:
scheme-requests-for-implementation/srfi-29@7bc2a49

Related to scheme-requests-for-implementation/srfi-29#1
Related to scheme-requests-for-implementation/srfi-29@8790e9a
Related to racket#12
Related to racket#8
Related to racket#4
LiberalArtist added a commit to LiberalArtist/srfi that referenced this pull request Nov 14, 2021
This commit moves the document and the associated Scribble
section from `srfi-doc-nonfree` to `srfi-doc`.

Thanks to @arthurgleckler for contacting Scott G. Miller
and confirming his permission to update the license.

The copy of `srfi-29.html` in this commit is taken directly from:
scheme-requests-for-implementation/srfi-29@7bc2a49

Related to scheme-requests-for-implementation/srfi-29#1
Related to scheme-requests-for-implementation/srfi-29@8790e9a
Related to racket#12
Related to racket#8
Related to racket#4
samth pushed a commit that referenced this pull request Nov 14, 2021
This commit moves the document and the associated Scribble
section from `srfi-doc-nonfree` to `srfi-doc`.

Thanks to @arthurgleckler for contacting Scott G. Miller
and confirming his permission to update the license.

The copy of `srfi-29.html` in this commit is taken directly from:
scheme-requests-for-implementation/srfi-29@7bc2a49

Related to scheme-requests-for-implementation/srfi-29#1
Related to scheme-requests-for-implementation/srfi-29@8790e9a
Related to #12
Related to #8
Related to #4
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.

None yet

2 participants