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

Reply via email to