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.

Reply via email to