bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: List of abbreviations for licenses


From: Ludovic Courtès
Subject: Re: List of abbreviations for licenses
Date: Thu, 29 Nov 2012 23:05:08 +0100
User-agent: Gnus/5.130005 (Ma Gnus v0.5) Emacs/24.2 (gnu/linux)

Hello!

Nikita Karetnikov <address@hidden> skribis:

> I'm trying to package 'util-linux'. It uses several licenses:
>
>  - GPLv3+
>  - GPLv2+
>  - GPLv2
>  - LGPLv2+
>  - BSD with advertising
>  - Public Domain
>
> What are the common abbreviations for Public Domain and BSD with
> advertising? Is there a list of abbreviations for licenses?

Nixpkgs uses this:

  https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/licenses.nix

which is a subset of this:

  http://fedoraproject.org/wiki/Licensing

> As far as I can tell, 'license' doesn't check the used values. So it's
> possible to use an incorrect value (e.g. "foobar"). Should we add a
> function to check this?

There could be a (guix licenses) module along these lines:

  (define-module (guix licenses)
    #:use-module (srfi srfi-9)
    #:export (gplv2+ gplv3+))

  (define-record-type <license>
    (license name)
    license?
    (name license-name))

  (define gplv3+ (license "GPLv3+"))
  (define gplv2+ (license "GPLv2+"))

Packages would then do, for instance:

  (package
    ...
    (license gplv3+))

and you would get a unbound-variable warning when passing something
wrong.  We could imagine a <license-union> type for multiply-licensed
code, and a <license-set> type for packages that incorporate code under
different licenses.  There could be a mechanism to make sure the
‘license’ field is a <license> object, or a <license-set> or
<license-union>

And then, it would be tempting to make a graph of <license> objects to
indicate compatibility, and add additional properties to each <license>
object to describe it more precisely (copyleft, version number, etc.),
and so on.


But!  We must keep in mind that people will always write new licenses;
packages will always include files covered by different licenses;
there will always be dual-licensed packages; etc.

More importantly, licensing is not a science, and we can’t pretend to
devise a universal “license calculus”.  (This has been discussed at
length in the past on nix-dev.)

Thus, I would start with a simple (guix licenses) module.  I would
perhaps even omit the <license> type, and use just plain strings to
start with.

WDYT?

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]