Hello Ludovic, sorry to necro-bump this old thread, but after reading it I do not think I have a satisfactory answer.
I wanted to send a patch exporting (license), but that noticed that was already done and reverted. Ludovic Courtès <[email protected]> writes: > Hi, > > zimoun <[email protected]> skribis: > >> On Thu, 23 Apr 2020 at 21:57, Ludovic Courtès <[email protected]> wrote: >> >>> [email protected] skribis: >>> >>> > commit f0779922ff260df2404c90504986aa59553154fb >>> > Author: zimoun <[email protected]> >>> > AuthorDate: Thu Apr 23 16:09:00 2020 +0200 >>> > >>> > licenses: Export license record. >>> > >>> > * guix/licenses.scm (<license>): Export it. >>> > >>> > Signed-off-by: Mathieu Othacehe <[email protected]> >>> >>> > - #:export (license? license-name license-uri license-comment >>> > + #:export (license license? license-name license-uri license-comment >>> >>> I see two issues: >>> >>> 1. The commit log doesn’t match the change. :-) >> >> Which part? > > ‘<license>’ vs. ‘license’. > >>> 2. It’s on purpose that the constructor is not exported. It’s so that >>> genuine license objects have to be defined here. (Likewise, record >>> type descriptors like <license> are generally kept private to >>> maintain encapsulation.) >> >> How to extend the list by custom licenses without defining them there? > > Like I wrote, it’s not possible, except via a procedure like ‘fsf-free’ > or ‘fsdg-compatible’. > >>> I’m in favor of reverting. >>> >>> What’s the use case, Simon? (Apologies if I missed the discussion!) >> >> I want to be able to have custom licenses for custom packages living >> in custom channels. >> >> More or less for example such use case; for reference [1]. >> >> (define-module (my-module) >> #:use-module (guix packages) >> #:use-module (guix licenses) >> #:use-module (gnu packages)) >> >> (define mine >> (license "mine" >> "https://my.domain.com" >> "My weird license that no one uses")) > > I see. I guess one of the procedures above would work, right? I fail to see how. I am packaging (for my channel at $work) a software under "Functional Source License, Version 1.1, MIT Future License", which, as far as I can tell, is not FSF approved nor compatible with FSDG. Which of those procedures should I use? I could do something like (fsf-free "https://spdx.github.io/license-list-data/FSL-1.1-MIT.html" "FSL-1.1-MIT; not actually FSF approved license") but that cannot be the intended way. Currently my solution is to use (@@ (guix licenses) license), but you said yourself that @@ cannot be recommended. I *could* just use #f, but I find tracking the license useful, so I would rather not. So, to state a direct question: Assuming I am packaging software under FSL-1.1-MIT, what should I put into (license) field? Thank you and have a nice day. :) Tomas -- There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors.
