From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id WKniB9Zvc2HP0AAAgWs5BA (envelope-from ) for ; Sat, 23 Oct 2021 04:13:42 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id yBOFA9Zvc2GaYAAA1q6Kng (envelope-from ) for ; Sat, 23 Oct 2021 02:13:42 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id A70F8C735 for ; Sat, 23 Oct 2021 04:13:41 +0200 (CEST) Received: from localhost ([::1]:44170 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1me6XU-0004TG-Kd for larch@yhetil.org; Fri, 22 Oct 2021 22:13:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42136) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1me6XJ-0004T0-1t for guix-devel@gnu.org; Fri, 22 Oct 2021 22:13:29 -0400 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:34653) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1me6XC-0000y6-Om for guix-devel@gnu.org; Fri, 22 Oct 2021 22:13:28 -0400 Received: by mail-qk1-x736.google.com with SMTP id g20so6484207qka.1 for ; Fri, 22 Oct 2021 19:13:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=message-id:date:mime-version:user-agent:content-language:to:from :subject:content-transfer-encoding; bh=ooYwm0tr+LxXDB/HbeFad2iqcOaFzawuf3qZaIOvAyU=; b=QSOTTa24kdlzzR1JwVxPtnFH+eF1zY8MeAKZd+mpArLjoJxCdUHDKtiq0/XUTNHLbJ tI8Jx/MfJwwtikaR2g1GX7Kp+xOKLOnV9N4FkOP6mLNsLdvDQz+GsJxHsU4muJIqfaWe qkHSrWh7tMmtegXYXH+bzbOaaZ0b8OBaATERQWgqmCaWRSDA3kFVOtU6sZj8eWezt8d/ 0moZjPQ4BiTl9Ge8G4IF+Oy/UZ+Ae1OeTVFzzuUSrhO+7JWGWqepzDVInA0h+IT6HhiA a3N/bbcdY2j6QAXc9Cd7NpdpvH5By0dS7Q+NThtM4fblUV/cZVBrlKumj/axoM8R9G4j Xf8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent :content-language:to:from:subject:content-transfer-encoding; bh=ooYwm0tr+LxXDB/HbeFad2iqcOaFzawuf3qZaIOvAyU=; b=arwdEXHPJkqMeGRSNkST8bGqp/FhBAzXouGXyCXefSRXFb1cOjxtz1wD4JpzVzWLjt 9IQY58LR+WXjyBYd0CJwfFPByx+J7wTpxn4aZS+4wmUPKPv49E0cFOW+0wly7uz5KRlD +xJ/AzT9pC0rWEoeRoXHO2IcRX8opK/AqbRx4RGGEGt+PbMTpy4YqIrO9XfzHtR1YjgD Annkq6qs8+kVIBg9yCzLQGcowOYtZ9Ep/3IaLcreTh2hprrj40BkFNhjo5W6z2pHdsTe 66FLf/qJ5Yi3oiWCA71ZnLc8DcESajIjmCxyuheWCA+/MXEqB5FCJrS8hJaVFNqXMfc5 RpUg== X-Gm-Message-State: AOAM531gvcK6sw3BOgoCilBvut2dnmfl8AhScYoWWay0ZZp6o6Bxe34a wGVoDve6R2sTDi1IKBLidVmfIVvv3A3qF6eM X-Google-Smtp-Source: ABdhPJx5JxolziYRDEwcPBcxLaxBRPDJCLzpduj958EmkyNseiuisXTFG1IfmAaLWuEvwWQSNtykxg== X-Received: by 2002:a05:620a:4551:: with SMTP id u17mr2906793qkp.470.1634955200657; Fri, 22 Oct 2021 19:13:20 -0700 (PDT) Received: from [192.168.45.37] (c-73-125-89-242.hsd1.fl.comcast.net. [73.125.89.242]) by smtp.gmail.com with ESMTPSA id o16sm4982589qkp.1.2021.10.22.19.13.20 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 22 Oct 2021 19:13:20 -0700 (PDT) Message-ID: Date: Fri, 22 Oct 2021 22:13:19 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.1.2 Content-Language: en-US To: Guix Devel From: Philip McGrath Subject: License issue with SRFI 5 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Received-SPF: neutral client-ip=2607:f8b0:4864:20::736; envelope-from=philip@philipmcgrath.com; helo=mail-qk1-x736.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1634955221; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=ooYwm0tr+LxXDB/HbeFad2iqcOaFzawuf3qZaIOvAyU=; b=Sutv1QAfyNsnq9H/BXSwbIpSn4h2SqiAOkzwaZHpUA0KjnbJyWdW8Tikon6zgC2BJVE4r2 ve1MrEooIdmuOlXiZz+sNFHW/GwI9pRFmQdJxj8eU6wEj6eEF0v9w+7pbFOtz622eKpHoH c2m9yIyYiIwUu+HmLKgCONbEIh0oPiTJsVdVuR5i1x38oGUbJYUCt3WH9WY9Xql8k4UOVJ FbEvqY/pxBzwPo4gCvl0j3Kbv/InayCpqV3Ktid0a0EMaK/cs90cVW+yIMK1JXZ0x9X0Sp NBTA+vIO2P9/DdORddTL3V719BMjaQVWOMwSPysVtFU9d6HFa/4AeJBjCKkI/A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1634955221; a=rsa-sha256; cv=none; b=GDYRPKMSubja4yCA2IFmuwiwGv0yUZyqxOHI6WKhYW0CFBKa/FCoGtlkGrXSiMh9VdyKtv Jd6lZC5J5U/HljI/Rzzr4Q+rcVFCaEyPI45KJjxfPuVxwFSxENm2YrCOTD00f9kDblVSqR qHAVyjEyAzWRs1O3VvGaM3EGFiZSEbTgdFfljildBtAsex4qOJdh8V4kPznGEbGQoXefjw 0zVICs90UIM+raCPr8IhXtOec6s63jv8AU7GQKI+xadEcv1qkTzd13QUILGlBhnBZJzHa9 jF2mlfYce9pE0v8BDmhXHcFg9UTBUyYpEVIvyu8kK0/zvrOdrHuCBp4OzdohSA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=philipmcgrath.com header.s=google header.b=QSOTTa24; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -1.13 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=philipmcgrath.com header.s=google header.b=QSOTTa24; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: A70F8C735 X-Spam-Score: -1.13 X-Migadu-Scanner: scn0.migadu.com X-TUID: 4qOz0KF0Tb41 Hi Guix, I was recently reminded of a thorny license issue with the SRFI 5 standard document, which is part of the main Racket distribution. People from Racket, the SRFI community, Debian, and Fedora have taken steps to help mitigate the problem: I want to make some further improvements, but I first need clarity on what Guix's policy requires and permits. Since 2005, SRFIs have used the MIT/Expat license, and all but two older SRFIs were relicensed: however, the SRFI editors were not able to contact the author of SRFI 5, Andy Gaynor, so it remains under the original SRFI license.[1] That license, modeled on that of IETF RFCs, was intended to be quite permissive while also trying to ensure derivative works would not be confused with the final, official SRFI itself. (The many versions of some SRFIs that nonetheless have come up while hunting down related issues has given me some sympathy for that goal.) Unfortunately, the restrictions on modifications went to far, at least in the judgement of Debian and Fedora. Here is the license text, as it appears at and : > Copyright (C) Andy Gaynor (1999). All Rights Reserved. > > 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. Before going any further, let me emphasize that a great deal of progress has been made since distro packagers first pointed out the problem.[2] First, there was work to separate the problematic SRFIs (plural, at the time) into "srfi-lib-nonfree" and "srfi-doc-nonfree" Racket packages.[3] Distro packagers could cleanly remove these from their Racket distributions, and they also work properly if a user of the distro-packaged Racket explicitly decides to install them. Later, I wrote a free implementation of SRFI 5, so "srfi-lib-nonfree" is now (confusingly) free software, an empty package definition for backwards compatibility.[4] SRFI 29 was supposed to have been converted to the MIT/Expat license in 2005, but somehow was missed: just today, the current SRFI editor, Arthur Gleckler, confirmed the permission of the author, Scott Miller, and updated the official document.[5][6][7] So the only problem remaining is the SRFI 5 standard document. Racketeers have high expectations of their documentation, like being able to right-click on an identifier in DrRacket (or the equivalent in Emacs with racket-mode) and jump to the locally-installed documentation for the relevant binding according to lexical scope and the module system---even for a binding like `let`, which is defined by 27 different Racket modules, including `srfi/5`. My tentative plan is to write free replacement documentation for SRFI 5, eliminate everything from "srfi-doc-nonfree" but the official SRFI 5 document itself, and program the free SRFI 5 documentation (in Racket's Scribble language) to link to the SRFI 5 document at racket-lang.org if there isn't a local copy installed. This all raises a few questions about Guix policy: 1. Can Guix distribute the official SRFI 5 standard document under the license listed above? 2. If not, can Guix distribute free documentation that links to an online copy of the official SRFI 5 standard document? 3. Would it be permissible for the free documentation to include instructions for installing the official SRFI 5 standard document locally, e.g. `raco pkg install srfi-doc-nonfree`? (Or perhaps `raco pkg install srfi-5-std-doc`, to avoid the implication of arbitrary non-free materials?) (Of course, if someone can manage to contact Andy Gaynor, that would be even better!) The first question is fundamental but less immediately important to me: since Debian and Fedora, at least, have answered in the negative, that's a scenario Racket will have to support. In FSDG terms,[8] the SRFI 5 standard does seem like "information for practical use", so it probably would need a free license. On the other hand, of course, FSDG standards do allow some parts of documentation not to be modifiable. As a practical matter, the permission for "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"---particularly given "in part"---seems to grant just about every permission practically necessary, and the part about "this document itself" could be read to refer only to a document which purports to *be* the official SRFI 5 standard, rather than merely to be derived it. (But I am not a lawyer.) I very much hope the answer to the second question is that, yes, we can link to an online copy of the standard. It seems there is strong precedent for this. The GCC manual [9] links directly to "the authoritative manual on traditional Objective-C (1.0)" by NeXTstep, hosted by GNUstep, [10] and the "authoritative manual on Objective-C 2.0 ... from Apple" [11], neither of which appear to permit any modified derivative works at all. The same page refers to various ISO C standards, which AIUI are not even freely (gratis) distributed in final published form, and links to a reading list [12] which in turn links to numerous restrictively-licensed documents, from the ARM ABI standard [13] to a monograph on the history of the C language [14]. However, there are a few less-than-fully-developed sentences in the FSDG that cast some doubt, e.g., "Programs in the system should not suggest installing nonfree plugins, documentation, and so on."[8] I do not think this should be read to prohibit free documentation for free software for referring to restrictively licensed standards implemented by the software. To interpret the guidelines---which themselves state that they "are not complete"[8]---I turn to broader statements about the rationale for why free software needs free documentation[15]: in short, so that when users exercise their freedom [16] "to modify the software, and add or change its features, if they are conscientious they will change the manual too—so they can provide accurate and usable documentation with the modified program."[15] As long as free documentation for the free program implementing the standard exists, that criterion is satisfied---and indeed there are subtleties I encountered when writing the free implementation of SRFI 5 that are not clearly explained by the standard. If someone modifies the free implementation, they are free to modify the free documentation accordingly. There is no need to modify the SRFI 5 standard document, and indeed any modified document would no longer *be* the SRFI 5 standard as finalized on 1999-04-26 and amended on 2003-01-27. Perhaps "standards" should not be in precisely the same category as "documentation" in general. Of course, we should advocate for standards to be freely licensed, too! But when restrictively licensed standards exist, free programs can implement them, and I think their free documentation need not be coy about referring to the official standard document, especially if adequate free documentation exists for the free implementation. Finally, there is the question of whether instructions could be provided for changing the hyperlinks in your local installation of some free documentation to point to a copy of the restrictively-licensed standard that you have downloaded to your machine, rather than a copy on the internet. I do not see what good purpose would be served by prohibiting this. Indeed, offline documentation advances positive goods like privacy that Guix should support. Perhaps this is also a reason to answer the first question in the affirmative. I wish, albeit with the benefit of hindsight, that SRFIs had used a well-known and unambiguously libre license from the start---or, again, that someone might manage to contact Andy Gaynor and secure permission for relicensing. While the status quo persists, I want to provide the best-integrated free documentation for SRFI 5 I can. Thanks for bearing with this long email. I hope we can think through together how Guix's principles ought to apply to the case of the SRFI 5 standard document. -Philip [1]: https://srfi-email.schemers.org/srfi-announce/msg/2652023/ [2]: https://github.com/racket/srfi/issues/4 [3]: https://github.com/racket/srfi/pull/5 [4]: https://github.com/racket/srfi/pull/7 [5]: https://srfi-email.schemers.org/srfi-discuss/msg/17984552/ [6]: https://github.com/scheme-requests-for-implementation/srfi-29/commit/8790e9acc8c9740eb0f9fc6939ce6b9af4464d20 [7]: https://github.com/racket/srfi/issues/4#issuecomment-949944343 [8]: https://www.gnu.org/distros/free-system-distribution-guidelines.html [9]: https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/Standards.html#Standards [10]: http://www.gnustep.org/resources/documentation/ObjectivCBook.pdf [11]: https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html [12]: https://gcc.gnu.org/readings.html [13]: https://developer.arm.com/documentation/ihi0036/latest/ [14]: https://www.bell-labs.com/usr/dmr/www/chist.html [15]: https://www.gnu.org/philosophy/free-doc.en.html [16]: https://gnu.tools/en/documents/social-contract/