unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#57055] [PATCH 0/2] gnu: Add guile-srfi-146.
@ 2022-08-08  8:32 pukkamustard
  2022-08-08  8:36 ` [bug#57055] [PATCH 1/2] gnu: Add guile-srfi-128 pukkamustard
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-08  8:32 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

Hello Guix,

This adds Guile bindings to SRFI 146 (Mappings) and SRFI 128 (Comparators
(reduced) - a dependency of SRFI 146).

SRFI 146 provides some very nice purely functional data structures for
mappings.

This patch set should be tested (and applied) after #57053, which fixes the
build of a dependency (SRFI 158).

Best regards,
pukkamustard

pukkamustard (2):
  gnu: Add guile-srfi-128.
  gnu: Add guile-srfi-146.

 gnu/packages/guile-xyz.scm | 60 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

-- 
2.37.1





^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 1/2] gnu: Add guile-srfi-128.
  2022-08-08  8:32 [bug#57055] [PATCH 0/2] gnu: Add guile-srfi-146 pukkamustard
@ 2022-08-08  8:36 ` pukkamustard
  2022-08-08  8:36   ` [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146 pukkamustard
  2022-08-09  9:30 ` [bug#57055] [PATCH v2 1/2] gnu: Add guile-srfi-128 pukkamustard
  2022-08-29  8:55 ` [bug#57055] [PATCH v3 1/2] gnu: Add guile-srfi-128 pukkamustard
  2 siblings, 1 reply; 18+ messages in thread
From: pukkamustard @ 2022-08-08  8:36 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

* gnu/packages/guile-xyz.scm (guile-srfi-128): New variable.
---
 gnu/packages/guile-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index cbdc9c5b66..2763fb73d0 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3091,6 +3091,33 @@ (define-public guile-srfi-89
 parameters, which  define* and lambda* special forms")
     (license license:gpl3+)))
 
+(define-public guile-srfi-128
+  (package
+    (name "guile-srfi-128")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/guile-srfi-128.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "03d85q5l2gc2c8cmri6zd4pfndvnadlhwh77hsx6ixvvm8vwq4sy"))
+       (file-name (git-file-name name version))))
+    (build-system guile-build-system)
+    (native-inputs
+     (list guile-3.0))
+    (home-page "https://inqlab.net/git/guile-srfi-128.git")
+    (synopsis "SRFI 128 Comparators (reduced) port for Guile")
+    (description
+     "This package provides an implementation of SRFI 128 for Guile.
+SRFI 128 defines comparators, which bundles a test type predicate, an
+equality predicate, an ordering predicate and a hash function into a
+single Scheme object.  This can be used in the implementation of data
+structures.  This package re-uses the SRFI sample implementation.")
+    (license license:lgpl3+)))
+
 (define-public guile-srfi-145
   (package
     (name "guile-srfi-145")
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08  8:36 ` [bug#57055] [PATCH 1/2] gnu: Add guile-srfi-128 pukkamustard
@ 2022-08-08  8:36   ` pukkamustard
  2022-08-08  9:30     ` Maxime Devos
  0 siblings, 1 reply; 18+ messages in thread
From: pukkamustard @ 2022-08-08  8:36 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

* gnu/packages/guile-xyz.scm (guile-srfi-146): New variable.
---
 gnu/packages/guile-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 2763fb73d0..3eb1e90213 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3142,6 +3142,39 @@ (define-public guile-srfi-145
 denote the invalidity of certain code paths in a Scheme program.")
     (license license:gpl3+)))
 
+(define-public guile-srfi-146
+  (package
+    (name "guile-srfi-146")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/guile-srfi-146.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "13dbzlav4fql8lcfr021z5368lwri6i15x0ykv8llzyghlbbx2w6"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list autoconf automake pkg-config))
+    (inputs (list guile-3.0))
+    (propagated-inputs
+     (list guile-srfi-128 guile-srfi-145 guile-srfi-158))
+    (synopsis "SRFI 146 (Mappings) for Guile")
+    (description
+     "This package provides an implementation of SRFI 146 for Guile.
+SRFI 146 defines datastructures that implement mappings (finite sets
+of associations consiting of a key and a value).  Two types of
+mappings are defined: One using a comparator to define an order on the
+keys and another using a hash function on the keys.  The
+datastructures and procedures are by default purely-functional.  This
+package re-uses the SRFI sample implementation that is based on
+red-black trees and Hash Array Mapped Trie (HAMT).")
+    (home-page "https://inqlab.net/git/guile-srfi-146.git")
+    (license license:lgpl3+)))
+
 (define-public guile-srfi-158
   (let ((commit "13126d1ed37892c864337a600a43d6876625fb99")
         (revision "0"))
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08  8:36   ` [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146 pukkamustard
@ 2022-08-08  9:30     ` Maxime Devos
  2022-08-08 12:43       ` pukkamustard
  0 siblings, 1 reply; 18+ messages in thread
From: Maxime Devos @ 2022-08-08  9:30 UTC (permalink / raw)
  To: pukkamustard, 57055


[-- Attachment #1.1.1: Type: text/plain, Size: 528 bytes --]


On 08-08-2022 10:36, pukkamustard wrote:
> +    (inputs (list guile-3.0))

guile-3.0 is used as a compiler, so it needs to be in native-inputs.  
Does "guix build guile-srfi-146 --target=aarch64-linux-gnu" (or with 
another target) work?

> +    (license license:lgpl3+)))

There are also some (ISC?) bits on 
<https://inqlab.net/git/guile-srfi-146.git/tree/srfi/srfi-146.scm>.

Also, Guix does not yet install the 'LICENSES' subdirectory, see 
<https://issues.guix.gnu.org/54234#1>.

Greetings,
Maxime.



[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08  9:30     ` Maxime Devos
@ 2022-08-08 12:43       ` pukkamustard
  2022-08-08 13:12         ` ( via Guix-patches via
                           ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-08 12:43 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 57055


Maxime Devos <maximedevos@telenet.be> writes:

> [[PGP Signed Part:Undecided]]
>
> On 08-08-2022 10:36, pukkamustard wrote:
>> +    (inputs (list guile-3.0))
>
> guile-3.0 is used as a compiler, so it needs to be in native-inputs. 
> Does "guix build guile-srfi-146 --target=aarch64-linux-gnu" (or with
> another target) work?

It does not!

Adding guile-3.0 to both native-inputs and inputs seems to solve this
(also for guile-srfi-158).

However, I then get following error:

```
no code for module (srfi srfi-128)
```

guile-srfi-128 is built using the guile-build-system. Maybe something
not working properly with guile-build-system and cross-compilation?

Do you have any ideas or suggestions on how to fix this?

>> +    (license license:lgpl3+)))
>
> There are also some (ISC?) bits on
> <https://inqlab.net/git/guile-srfi-146.git/tree/srfi/srfi-146.scm>.

Yes, the sample SRFI implementation is licensed under ISC. Afaiu,
there's no problem in relicensing this as LGPL-3.0-or-later. I think a
lot of the guile-srfi-* libraries do this.

> Also, Guix does not yet install the 'LICENSES' subdirectory, see
> <https://issues.guix.gnu.org/54234#1>.

Noted.

Cheers,
pukkamustard




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08 12:43       ` pukkamustard
@ 2022-08-08 13:12         ` ( via Guix-patches via
  2022-08-08 13:47           ` pukkamustard
  2022-08-08 18:22         ` Maxime Devos
  2022-08-08 19:04         ` Maxime Devos
  2 siblings, 1 reply; 18+ messages in thread
From: ( via Guix-patches via @ 2022-08-08 13:12 UTC (permalink / raw)
  To: pukkamustard, Maxime Devos; +Cc: 57055

On Mon Aug 8, 2022 at 1:43 PM BST, pukkamustard wrote:
> Adding guile-3.0 to both native-inputs and inputs seems to solve this
> (also for guile-srfi-158).
You should only need to add it in native-inputs.

    -- (




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08 13:12         ` ( via Guix-patches via
@ 2022-08-08 13:47           ` pukkamustard
  0 siblings, 0 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-08 13:47 UTC (permalink / raw)
  To: (; +Cc: Maxime Devos, 57055


"(" <paren@disroot.org> writes:

> On Mon Aug 8, 2022 at 1:43 PM BST, pukkamustard wrote:
>> Adding guile-3.0 to both native-inputs and inputs seems to solve this
>> (also for guile-srfi-158).
> You should only need to add it in native-inputs.

If I only add guile-3.0 to native-inputs (and not to inputs), the build
fails like this:

```
configure: checking for guile 3.0
configure: checking for guile 2.2
configure: checking for guile 2.0
configure: error: 
No Guile development packages were found.

Please verify that you have Guile installed.  If you installed Guile
from a binary distribution, please verify that you have also installed
the development packages.  If you installed it yourself, you might need
to adjust your PKG_CONFIG_PATH; see the pkg-config man page for more.

error: in phase 'configure': uncaught exception:
%exception #<&invoke-error program: "/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" arguments: ("./configure" "CC_FOR_BUILD=gcc" "CONFIG_SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "SHELL=/gnu/store/4y5m9lb8k3qkb1y9m02sw9w9a6hacd16-bash-minimal-5.1.8/bin/bash" "--prefix=/gnu/store/qhcnb9giiahhb2p7y7q05gs4ndhln4yk-guile-srfi-146-0.1.0" "--enable-fast-install" "--build=x86_64-unknown-linux-gnu" "--host=arm-linux-gnueabihf") exit-status: 1 term-signal: #f stop-signal: #f> 
phase `configure' failed after 0.6 seconds
```

Quite possibly that something is wrong with the configure.ac. Same thing
also happens with guile-srfi-158.

-pukkamustard




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08 12:43       ` pukkamustard
  2022-08-08 13:12         ` ( via Guix-patches via
@ 2022-08-08 18:22         ` Maxime Devos
  2022-08-19 13:41           ` pukkamustard
  2022-08-08 19:04         ` Maxime Devos
  2 siblings, 1 reply; 18+ messages in thread
From: Maxime Devos @ 2022-08-08 18:22 UTC (permalink / raw)
  To: pukkamustard; +Cc: 57055


[-- Attachment #1.1.1.1: Type: text/plain, Size: 683 bytes --]


On 08-08-2022 14:43, pukkamustard wrote:
>>> +    (license license:lgpl3+)))
>> There are also some (ISC?) bits on
>> <https://inqlab.net/git/guile-srfi-146.git/tree/srfi/srfi-146.scm>.
> Yes, the sample SRFI implementation is licensed under ISC. Afaiu,
> there's no problem in relicensing this as LGPL-3.0-or-later. I think a
> lot of the guile-srfi-* libraries do this.
>
I have looked at license text, and it states that it allows 
'sublicensing', but it doesn't say anything about relicensing (except 
maybe for the "deal in the Software without restriction"?).

As such, I think it would be safer to just include license:isc in the list.

Greetings,
Maxime.


[-- Attachment #1.1.1.2: Type: text/html, Size: 1481 bytes --]

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08 12:43       ` pukkamustard
  2022-08-08 13:12         ` ( via Guix-patches via
  2022-08-08 18:22         ` Maxime Devos
@ 2022-08-08 19:04         ` Maxime Devos
  2022-08-09  9:24           ` pukkamustard
  2 siblings, 1 reply; 18+ messages in thread
From: Maxime Devos @ 2022-08-08 19:04 UTC (permalink / raw)
  To: pukkamustard; +Cc: 57055


[-- Attachment #1.1.1: Type: text/plain, Size: 540 bytes --]


On 08-08-2022 14:43, pukkamustard wrote:
> ```
> no code for module (srfi srfi-128)
> ```
>
> guile-srfi-128 is built using the guile-build-system. Maybe something
> not working properly with guile-build-system and cross-compilation?

I don't know about guile-build-system, but for some Guile packages that 
use gnu-build-system, the package itself has to be added to 
native-inputs when cross-compiling (this-package may be useful). I think 
it has something to do with macros and the module system.

Greetings,
Maxime.


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08 19:04         ` Maxime Devos
@ 2022-08-09  9:24           ` pukkamustard
  0 siblings, 0 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-09  9:24 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 57055


Maxime Devos <maximedevos@telenet.be> writes:

> I don't know about guile-build-system, but for some Guile packages
> that use gnu-build-system, the package itself has to be added to
> native-inputs when cross-compiling (this-package may be useful). I
> think it has something to do with macros and the module system.

That seems to do the trick. Adding the Guile libraries to the
native-inputs makes cross-compilation work.

I will send in a V2 of patches that fixes this.

Thanks,
pukkamustard




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH v2 1/2] gnu: Add guile-srfi-128.
  2022-08-08  8:32 [bug#57055] [PATCH 0/2] gnu: Add guile-srfi-146 pukkamustard
  2022-08-08  8:36 ` [bug#57055] [PATCH 1/2] gnu: Add guile-srfi-128 pukkamustard
@ 2022-08-09  9:30 ` pukkamustard
  2022-08-09  9:30   ` [bug#57055] [PATCH v2 2/2] gnu: Add guile-srfi-146 pukkamustard
  2022-08-29  8:55 ` [bug#57055] [PATCH v3 1/2] gnu: Add guile-srfi-128 pukkamustard
  2 siblings, 1 reply; 18+ messages in thread
From: pukkamustard @ 2022-08-09  9:30 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

* gnu/packages/guile-xyz.scm (guile-srfi-128): New variable.
---
 gnu/packages/guile-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index c1aae8791f..f23d77c8d6 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3091,6 +3091,33 @@ (define-public guile-srfi-89
 parameters, which  define* and lambda* special forms")
     (license license:gpl3+)))
 
+(define-public guile-srfi-128
+  (package
+    (name "guile-srfi-128")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/guile-srfi-128.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "03d85q5l2gc2c8cmri6zd4pfndvnadlhwh77hsx6ixvvm8vwq4sy"))
+       (file-name (git-file-name name version))))
+    (build-system guile-build-system)
+    (native-inputs
+     (list guile-3.0))
+    (home-page "https://inqlab.net/git/guile-srfi-128.git")
+    (synopsis "SRFI 128 Comparators (reduced) port for Guile")
+    (description
+     "This package provides an implementation of SRFI 128 for Guile.
+SRFI 128 defines comparators, which bundles a test type predicate, an
+equality predicate, an ordering predicate and a hash function into a
+single Scheme object.  This can be used in the implementation of data
+structures.  This package re-uses the SRFI sample implementation.")
+    (license license:lgpl3+)))
+
 (define-public guile-srfi-145
   (package
     (name "guile-srfi-145")
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH v2 2/2] gnu: Add guile-srfi-146.
  2022-08-09  9:30 ` [bug#57055] [PATCH v2 1/2] gnu: Add guile-srfi-128 pukkamustard
@ 2022-08-09  9:30   ` pukkamustard
  0 siblings, 0 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-09  9:30 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

* gnu/packages/guile-xyz.scm (guile-srfi-146): New variable.
---
 gnu/packages/guile-xyz.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index f23d77c8d6..2db99dc33e 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3142,6 +3142,41 @@ (define-public guile-srfi-145
 denote the invalidity of certain code paths in a Scheme program.")
     (license license:gpl3+)))
 
+(define-public guile-srfi-146
+  (package
+    (name "guile-srfi-146")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/guile-srfi-146.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "13dbzlav4fql8lcfr021z5368lwri6i15x0ykv8llzyghlbbx2w6"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list guile-3.0
+           guile-srfi-128 guile-srfi-145 guile-srfi-158
+           autoconf automake pkg-config))
+    (inputs (list guile-3.0))
+    (propagated-inputs
+     (list guile-srfi-128 guile-srfi-145 guile-srfi-158))
+    (synopsis "SRFI 146 (Mappings) for Guile")
+    (description
+     "This package provides an implementation of SRFI 146 for Guile.
+SRFI 146 defines datastructures that implement mappings (finite sets
+of associations consiting of a key and a value).  Two types of
+mappings are defined: One using a comparator to define an order on the
+keys and another using a hash function on the keys.  The
+datastructures and procedures are by default purely-functional.  This
+package re-uses the SRFI sample implementation that is based on
+red-black trees and Hash Array Mapped Trie (HAMT).")
+    (home-page "https://inqlab.net/git/guile-srfi-146.git")
+    (license license:lgpl3+)))
+
 (define-public guile-srfi-158
   (let ((commit "13126d1ed37892c864337a600a43d6876625fb99")
         (revision "0"))
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-08 18:22         ` Maxime Devos
@ 2022-08-19 13:41           ` pukkamustard
  2022-08-19 20:34             ` Maxime Devos
  0 siblings, 1 reply; 18+ messages in thread
From: pukkamustard @ 2022-08-19 13:41 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 57055


Sorry for the delayed response. I seem to have missed this mail.

Maxime Devos <maximedevos@telenet.be> writes:

> [[PGP Signed Part:Undecided]]
> On 08-08-2022 14:43, pukkamustard wrote:
>
>  +    (license license:lgpl3+)))
>
> There are also some (ISC?) bits on
> <https://inqlab.net/git/guile-srfi-146.git/tree/srfi/srfi-146.scm>.
>
> Yes, the sample SRFI implementation is licensed under ISC. Afaiu,
> there's no problem in relicensing this as LGPL-3.0-or-later. I think a
> lot of the guile-srfi-* libraries do this.
>
> I have looked at license text, and it states that it allows 'sublicensing', but it doesn't say anything about relicensing (except maybe for
> the "deal in the Software without restriction"?).
>
> As such, I think it would be safer to just include license:isc in the list.

I'm no legal expert, but I think I am free to distribute it only
under LGPL-3.0-or-later (and not also ISC). And I prefer to do so.

For prior cases see modules/srfi/srfi-71.scm as distributed with
Guile. The file contains a SRFI sample implementation with the same ISC
license header. It seems to be fine to relicense modules distributed
with Guile as LGPL-3.0-or-later. In the Guix package definition for
Guile only license:lgpl3+ is listed (and not license:isc).

Cheers,
pukkamustard




^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-19 13:41           ` pukkamustard
@ 2022-08-19 20:34             ` Maxime Devos
  2022-08-29  8:48               ` pukkamustard
  0 siblings, 1 reply; 18+ messages in thread
From: Maxime Devos @ 2022-08-19 20:34 UTC (permalink / raw)
  To: pukkamustard; +Cc: 57055


[-- Attachment #1.1.1: Type: text/plain, Size: 1815 bytes --]

On 19-08-2022 15:41, pukkamustard wrote:

> I'm no legal expert, but I think I am free to distribute it only
> under LGPL-3.0-or-later (and not also ISC). And I prefer to do so.
Sure, go ahead and distribute it as LGPL-3.0-or-later, but I don't see 
how it follows that license:isc should be removed from the license list.

However, to me it seems inaccurate that you do not have to follow the 
ISC by following the LGPL-3.0-or-later instead. The ISC has a line:
> ;; [...] The above copyright notice and this permission notice shall 
> be included
> ;; in all copies or substantial portions of the Software. [...]
Even if ISC permits relicensing, I would assume you will still have to 
follow that. Otherwise, you could circumvent 'preserve this copyright 
notice / preserve authorship information / ...’ requirements by 
relicensing it as something very permissive, which seems a loophole to me.
> For prior cases see modules/srfi/srfi-71.scm as distributed with
> Guile. The file contains a SRFI sample implementation with the same ISC
> license header. It seems to be fine to relicense modules distributed
> with Guile as LGPL-3.0-or-later.

I am not following, how is this relicensing?

> In the Guix package definition for Guile only license:lgpl3+ is listed (and not license:isc).

Right, I would add license:isc with an appropriate comment to the list 
in the Guile package definition, looks like the license information for 
that package is incomplete.

[...]

More generally, I don't see a need for computing an 'effective license' 
(*) of the licenses of the individual files, given the lack of legal 
experts here and as 'licenses' accepts a list, not only a single item.

(*) things like 'isc or expat + lgplN-or-later -> lgplN-or-later'.

Greetings,
Maxime.


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146.
  2022-08-19 20:34             ` Maxime Devos
@ 2022-08-29  8:48               ` pukkamustard
  0 siblings, 0 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-29  8:48 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 57055


Hi,

I think I finally understand your reasoning (also thanks to the thread
on guix-devel -
https://lists.gnu.org/archive/html/guix-devel/2022-08/msg00167.html) and
agree.

Will send in V3 shortly with license:isc added to the list of licenses
with a comment.

Thank you for your elaborations and patience.

- pukkamustard

Maxime Devos <maximedevos@telenet.be> writes:

> [[PGP Signed Part:Undecided]]
> On 19-08-2022 15:41, pukkamustard wrote:
>
>> I'm no legal expert, but I think I am free to distribute it only
>> under LGPL-3.0-or-later (and not also ISC). And I prefer to do so.
> Sure, go ahead and distribute it as LGPL-3.0-or-later, but I don't see
> how it follows that license:isc should be removed from the license
> list.
>
> However, to me it seems inaccurate that you do not have to follow the
> ISC by following the LGPL-3.0-or-later instead. The ISC has a line:
>> ;; [...] The above copyright notice and this permission notice shall
>> be included
>> ;; in all copies or substantial portions of the Software. [...]
> Even if ISC permits relicensing, I would assume you will still have to
> follow that. Otherwise, you could circumvent 'preserve this copyright
> notice / preserve authorship information / ...’ requirements by
> relicensing it as something very permissive, which seems a loophole to
> me.
>> For prior cases see modules/srfi/srfi-71.scm as distributed with
>> Guile. The file contains a SRFI sample implementation with the same ISC
>> license header. It seems to be fine to relicense modules distributed
>> with Guile as LGPL-3.0-or-later.
>
> I am not following, how is this relicensing?
>
>> In the Guix package definition for Guile only license:lgpl3+ is listed (and not license:isc).
>
> Right, I would add license:isc with an appropriate comment to the list
> in the Guile package definition, looks like the license information
> for that package is incomplete.
>
> [...]
>
> More generally, I don't see a need for computing an 'effective
> license' (*) of the licenses of the individual files, given the lack
> of legal experts here and as 'licenses' accepts a list, not only a
> single item.
>
> (*) things like 'isc or expat + lgplN-or-later -> lgplN-or-later'.
>
> Greetings,
> Maxime.
>
> [2. OpenPGP public key --- application/pgp-keys; OpenPGP_0x49E3EE22191725EE.asc]...
>
> [[End of PGP Signed Part]]





^ permalink raw reply	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH v3 1/2] gnu: Add guile-srfi-128.
  2022-08-08  8:32 [bug#57055] [PATCH 0/2] gnu: Add guile-srfi-146 pukkamustard
  2022-08-08  8:36 ` [bug#57055] [PATCH 1/2] gnu: Add guile-srfi-128 pukkamustard
  2022-08-09  9:30 ` [bug#57055] [PATCH v2 1/2] gnu: Add guile-srfi-128 pukkamustard
@ 2022-08-29  8:55 ` pukkamustard
  2022-08-29  8:56   ` [bug#57055] [PATCH v3 2/2] gnu: Add guile-srfi-146 pukkamustard
  2022-08-31 21:14   ` bug#57055: [PATCH 0/2] " Ludovic Courtès
  2 siblings, 2 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-29  8:55 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

* gnu/packages/guile-xyz.scm (guile-srfi-128): New variable.
---
 gnu/packages/guile-xyz.scm | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index c1aae8791f..52aa6d5f6a 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3091,6 +3091,36 @@ (define-public guile-srfi-89
 parameters, which  define* and lambda* special forms")
     (license license:gpl3+)))
 
+(define-public guile-srfi-128
+  (package
+    (name "guile-srfi-128")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/guile-srfi-128.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "03d85q5l2gc2c8cmri6zd4pfndvnadlhwh77hsx6ixvvm8vwq4sy"))
+       (file-name (git-file-name name version))))
+    (build-system guile-build-system)
+    (native-inputs
+     (list guile-3.0))
+    (home-page "https://inqlab.net/git/guile-srfi-128.git")
+    (synopsis "SRFI 128 Comparators (reduced) port for Guile")
+    (description
+     "This package provides an implementation of SRFI 128 for Guile.
+SRFI 128 defines comparators, which bundles a test type predicate, an
+equality predicate, an ordering predicate and a hash function into a
+single Scheme object.  This can be used in the implementation of data
+structures.  This package re-uses the SRFI sample implementation.")
+    (license
+     (list license:lgpl3+
+           ;; contains ISC code from the SRFI sample implementation
+           license:isc))))
+
 (define-public guile-srfi-145
   (package
     (name "guile-srfi-145")
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [bug#57055] [PATCH v3 2/2] gnu: Add guile-srfi-146.
  2022-08-29  8:55 ` [bug#57055] [PATCH v3 1/2] gnu: Add guile-srfi-128 pukkamustard
@ 2022-08-29  8:56   ` pukkamustard
  2022-08-31 21:14   ` bug#57055: [PATCH 0/2] " Ludovic Courtès
  1 sibling, 0 replies; 18+ messages in thread
From: pukkamustard @ 2022-08-29  8:56 UTC (permalink / raw)
  To: 57055; +Cc: pukkamustard

* gnu/packages/guile-xyz.scm (guile-srfi-146): New variable.
---
 gnu/packages/guile-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm
index 52aa6d5f6a..483ec15676 100644
--- a/gnu/packages/guile-xyz.scm
+++ b/gnu/packages/guile-xyz.scm
@@ -3145,6 +3145,44 @@ (define-public guile-srfi-145
 denote the invalidity of certain code paths in a Scheme program.")
     (license license:gpl3+)))
 
+(define-public guile-srfi-146
+  (package
+    (name "guile-srfi-146")
+    (version "0.1.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://inqlab.net/git/guile-srfi-146.git")
+             (commit (string-append "v" version))))
+       (sha256
+        (base32
+         "13dbzlav4fql8lcfr021z5368lwri6i15x0ykv8llzyghlbbx2w6"))
+       (file-name (git-file-name name version))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list guile-3.0
+           guile-srfi-128 guile-srfi-145 guile-srfi-158
+           autoconf automake pkg-config))
+    (inputs (list guile-3.0))
+    (propagated-inputs
+     (list guile-srfi-128 guile-srfi-145 guile-srfi-158))
+    (synopsis "SRFI 146 (Mappings) for Guile")
+    (description
+     "This package provides an implementation of SRFI 146 for Guile.
+SRFI 146 defines datastructures that implement mappings (finite sets
+of associations consiting of a key and a value).  Two types of
+mappings are defined: One using a comparator to define an order on the
+keys and another using a hash function on the keys.  The
+datastructures and procedures are by default purely-functional.  This
+package re-uses the SRFI sample implementation that is based on
+red-black trees and Hash Array Mapped Trie (HAMT).")
+    (home-page "https://inqlab.net/git/guile-srfi-146.git")
+    (license
+     (list license:lgpl3+
+           ;; contains ISC code from the SRFI sample implementation
+           license:isc))))
+
 (define-public guile-srfi-158
   (let ((commit "13126d1ed37892c864337a600a43d6876625fb99")
         (revision "0"))
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 18+ messages in thread

* bug#57055: [PATCH 0/2] gnu: Add guile-srfi-146.
  2022-08-29  8:55 ` [bug#57055] [PATCH v3 1/2] gnu: Add guile-srfi-128 pukkamustard
  2022-08-29  8:56   ` [bug#57055] [PATCH v3 2/2] gnu: Add guile-srfi-146 pukkamustard
@ 2022-08-31 21:14   ` Ludovic Courtès
  1 sibling, 0 replies; 18+ messages in thread
From: Ludovic Courtès @ 2022-08-31 21:14 UTC (permalink / raw)
  To: pukkamustard; +Cc: 57055-done

Hi pukkamustard,

pukkamustard <pukkamustard@posteo.net> skribis:

> * gnu/packages/guile-xyz.scm (guile-srfi-128): New variable.

[...]

> * gnu/packages/guile-xyz.scm (guile-srfi-146): New variable.

Applied.  Thank you, and thanks Maxime for reviewing!

Ludo’.




^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2022-08-31 21:15 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-08  8:32 [bug#57055] [PATCH 0/2] gnu: Add guile-srfi-146 pukkamustard
2022-08-08  8:36 ` [bug#57055] [PATCH 1/2] gnu: Add guile-srfi-128 pukkamustard
2022-08-08  8:36   ` [bug#57055] [PATCH 2/2] gnu: Add guile-srfi-146 pukkamustard
2022-08-08  9:30     ` Maxime Devos
2022-08-08 12:43       ` pukkamustard
2022-08-08 13:12         ` ( via Guix-patches via
2022-08-08 13:47           ` pukkamustard
2022-08-08 18:22         ` Maxime Devos
2022-08-19 13:41           ` pukkamustard
2022-08-19 20:34             ` Maxime Devos
2022-08-29  8:48               ` pukkamustard
2022-08-08 19:04         ` Maxime Devos
2022-08-09  9:24           ` pukkamustard
2022-08-09  9:30 ` [bug#57055] [PATCH v2 1/2] gnu: Add guile-srfi-128 pukkamustard
2022-08-09  9:30   ` [bug#57055] [PATCH v2 2/2] gnu: Add guile-srfi-146 pukkamustard
2022-08-29  8:55 ` [bug#57055] [PATCH v3 1/2] gnu: Add guile-srfi-128 pukkamustard
2022-08-29  8:56   ` [bug#57055] [PATCH v3 2/2] gnu: Add guile-srfi-146 pukkamustard
2022-08-31 21:14   ` bug#57055: [PATCH 0/2] " Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).