Hi Rob, Rob Browning <r...@defaultvalue.org> writes:
> I was considering adding SRFI 197 > https://srfi.schemers.org/srfi-197/srfi-197.html, > i.e. "pipeline/threading operators". I've incorporated the reference > implementation, integrated the tests, and converted the documentation to > texinfo. That's great. In case that could be useful for future ports, I had devised a hacky script to automate the task to migrate the upstream html documentation to texinfo, it's available here: <https://lists.gnu.org/r/guile-devel/2023-12/msg00069.html>. I'd recommend adding credits to the documentation too, as I had done for example in the (unreviewed/unmerged) <https://lists.gnu.org/r/guile-devel/2023-12/msg00080.html> series: --8<---------------cut here---------------start------------->8--- --- a/doc/ref/guile.texi +++ b/doc/ref/guile.texi @@ -23,8 +23,31 @@ any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License.'' -@end copying +Additionally, the documentation of the SRFI 126 module is adapted from +its specification text, which is made available under the following +Expat license: + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +@end copying @c Notes @c diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi index 0cdf56923..8b3315180 100644 --- a/doc/ref/srfi-modules.texi +++ b/doc/ref/srfi-modules.texi @@ -2,6 +2,7 @@ @c This is part of the GNU Guile Reference Manual. @c Copyright (C) 1996, 1997, 2000-2004, 2006, 2007-2014, 2017, 2018, 2019, 2020 @c Free Software Foundation, Inc. +@c Copyright (C) 2015-2016 Taylan Ulrich Bayırlı/Kammer @c See the file guile.texi for copying conditions. --8<---------------cut here---------------end--------------->8--- > I'm not posting the patches here right now due to their relative size > (e.g. the HTML -- I added the upstream files as-is for provenance and > then adjusted them), though I'd be happy to post them if preferred. > > For now they're here (on current main): > > https://codeberg.org/rlb/guile/src/branch/srfi-197 > > One thing I wasn't certain about was the handling of the per-file > copyrights. (Oh, and I'm planning to move the NEWS down into the "New > interfaces section".) That's annoying and I when working on the above linked series I ended up working with upstream to devise a way so that in the future newly contributed SRFIs should be REUSE compliant, that is, having annotated SPDX licensing information in every file of the project, which would make it very clear what licensed gets pulled into Guile (and other users) when copying source files. See the <https://srfi.schemers.org/srfi-process.html> page, which documents it. Upstream is also opened to make old SRFIs compatible with this new guideline, which I've done for the SRFIs appearing in the series mentioned earlier, so the source files licenses are self-explanatory and need not be manually annotated in Guile, e.g.: --8<---------------cut here---------------start------------->8--- diff --git a/module/srfi/srfi-126.sld b/module/srfi/srfi-126.sld new file mode 100644 index 000000000..34276199f --- /dev/null +++ b/module/srfi/srfi-126.sld @@ -0,0 +1,44 @@ +;;; SPDX-FileCopyrightText: 2015 - 2016 Taylan Kammer <taylan.kam...@gmail.com> +;;; +;;; SPDX-License-Identifier: MIT --8<---------------cut here---------------end--------------->8--- Then, in Guile, to follow on using REUSE for at least the files that apply, I had added: --8<---------------cut here---------------start------------->8--- diff --git a/LICENSE b/LICENSE index 3961579b8..e6713742c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,2 +1,7 @@ Guile is covered under the terms of the GNU Lesser General Public License, version 3 or later. See COPYING.LESSER and COPYING. + +Some third party libraries integrated into Guile, such as SRFI sample +implementations, may carry their own license, identified via SPDX +metadata. All the extra licences in use can be found under the +LICENSES directory. diff --git a/LICENSES/MIT.txt b/LICENSES/MIT.txt new file mode 100644 index 000000000..2071b23b0 --- /dev/null +++ b/LICENSES/MIT.txt @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) <year> <copyright holders> + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/NEWS b/NEWS index e5cc3c7aa..8a0c77eb5 100644 --8<---------------cut here---------------end--------------->8--- I've gone ahead and submitted a PR to this repo to add the SPDX licenses annotations, which should make your job slightly easier here, by not having to hunt and place the license text yourself in the source files: <https://github.com/scheme-requests-for-implementation/srfi-197/pull/5>. Happy hacking, -- Maxim