unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* List of abbreviations for licenses
@ 2012-11-29  4:54 Nikita Karetnikov
  2012-11-29 22:05 ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2012-11-29  4:54 UTC (permalink / raw
  To: bug-guix

Hi,

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?

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?

Nikita

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

* Re: List of abbreviations for licenses
  2012-11-29  4:54 List of abbreviations for licenses Nikita Karetnikov
@ 2012-11-29 22:05 ` Ludovic Courtès
  2012-11-29 23:53   ` Jeff Mickey
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-11-29 22:05 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Hello!

Nikita Karetnikov <nikita.karetnikov@gmail.com> 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’.

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

* Re: List of abbreviations for licenses
  2012-11-29 22:05 ` Ludovic Courtès
@ 2012-11-29 23:53   ` Jeff Mickey
  2012-11-30  0:49     ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Jeff Mickey @ 2012-11-29 23:53 UTC (permalink / raw
  To: Ludovic Courtès; +Cc: bug-guix

On Thu, Nov 29, 2012 at 2:05 PM, Ludovic Courtès <ludo@gnu.org> wrote:

> 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?

Unsolicited advice incoming..

Licenses are a huge pain when you get into all the custom ones out
there. This has also been discussed at length on arch-dev years ago.

IIRC ArchLinux uses an array of strings for each package, and then
when you build the package you get warnings about licenses that are
unique/new. You then add the LICENSE file to the package so the
warning goes away, and it gets placed in a common licenses directory.
I don't quite remember the mechanics of how it checked this, and I'm
sure it's changed by now.

I think the important part here is if you use strings, have some way
to check if someone is building a package with a new/undocumented
license. Then the graph of license objects could be accomplished
later, if you know you don't have misspellings like "LGLPv2" and stuff
like it polluting the graph.

  //  jeff

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

* Re: List of abbreviations for licenses
  2012-11-29 23:53   ` Jeff Mickey
@ 2012-11-30  0:49     ` Ludovic Courtès
  2012-12-06 22:52       ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-11-30  0:49 UTC (permalink / raw
  To: Jeff Mickey; +Cc: bug-guix

Hi,

Jeff Mickey <j@codemac.net> skribis:

> I think the important part here is if you use strings, have some way
> to check if someone is building a package with a new/undocumented
> license. Then the graph of license objects could be accomplished
> later, if you know you don't have misspellings like "LGLPv2" and stuff
> like it polluting the graph.

Right.  Referring to variables defined in (guix licenses) instead of
using plain strings directly should help with that.

Thanks,
Ludo’.

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

* Re: List of abbreviations for licenses
  2012-11-30  0:49     ` Ludovic Courtès
@ 2012-12-06 22:52       ` Nikita Karetnikov
  2012-12-07  9:43         ` Ludovic Courtès
  2012-12-07 19:53         ` Ludovic Courtès
  0 siblings, 2 replies; 17+ messages in thread
From: Nikita Karetnikov @ 2012-12-06 22:52 UTC (permalink / raw
  To: bug-guix

[-- Attachment #1: Type: text/plain, Size: 45 bytes --]

I've attached the patch.

What do you think?

[-- Attachment #2: 0001-Add-guix-licenses.patch --]
[-- Type: text/x-diff, Size: 4539 bytes --]

From eb8229c7834dd1d249e8f5adc8382d00b289aa00 Mon Sep 17 00:00:00 2001
From: Nikita Karetnikov <nikita@karetnikov.org>
Date: Thu, 6 Dec 2012 22:39:57 +0000
Subject: [PATCH] Add (guix licenses).

* guix/licenses.scm: New file.
* Makefile.am (MODULES): Add it.
---
 Makefile.am       |    1 +
 guix/licenses.scm |  106 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+), 0 deletions(-)
 create mode 100644 guix/licenses.scm

diff --git a/Makefile.am b/Makefile.am
index fab85ae..d5072c7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -28,6 +28,7 @@ MODULES =					\
   guix/derivations.scm				\
   guix/download.scm				\
   guix/gnu-maintenance.scm			\
+  guix/licenses.scm				\
   guix/build-system.scm				\
   guix/build-system/gnu.scm			\
   guix/build-system/trivial.scm			\
diff --git a/guix/licenses.scm b/guix/licenses.scm
new file mode 100644
index 0000000..f12dee2
--- /dev/null
+++ b/guix/licenses.scm
@@ -0,0 +1,106 @@
+;;; Guix --- Nix package management from Guile.         -*- coding: utf-8 -*-
+;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org>
+;;;
+;;; This file is part of Guix.
+;;;
+;;; Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix licenses)
+  #:use-module (srfi srfi-9)
+  #:export (asl2.0)
+  #:export (boost1.0)
+  #:export (bsd-2 bsd-3 bsd-4)
+  #:export (cddl1.0)
+  #:export (cpl1.0)
+  #:export (epl1.0)
+  #:export (gpl2 gpl2+ gpl3 gpl3+)
+  #:export (ijg)
+  #:export (ibmpl1.0)
+  #:export (lgpl2.1 lgpl2.1+ lgpl3 lgpl3+)
+  #:export (mpl2.0)
+  #:export (openssl)
+  #:export (public-domain)
+  #:export (x11)
+  #:export (zlib))
+
+(define-record-type <license>
+  (license name)
+  license?
+  (name license-name))
+
+;;; The following list is based on these links:
+;;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/licenses.nix
+;;; https://www.gnu.org/licenses/license-list
+
+;;; https://www.gnu.org/licenses/license-list#apache2
+(define asl2.0 (license "ASL 2.0"))
+
+;;; https://www.gnu.org/licenses/license-list#boost
+(define boost1.0 (license "Boost 1.0"))
+
+;;; https://www.gnu.org/licenses/license-list#FreeBSD
+(define bsd-2 (license "FreeBSD"))
+
+;;; https://www.gnu.org/licenses/license-list#ModifiedBSD
+(define bsd-3 (license "Modified BSD"))
+
+;;; https://www.gnu.org/licenses/license-list#OriginalBSD
+(define bsd-4 (license "Original BSD"))
+
+;;; https://www.gnu.org/licenses/license-list#CDDL
+(define cddl1.0 (license "CDDL 1.0"))
+
+;;; https://www.gnu.org/licenses/license-list#CommonPublicLicense10
+(define cpl1.0 (license "CPL 1.0"))
+
+;;; https://www.gnu.org/licenses/license-list#EPL
+(define epl1.0 (license "EPL 1.0"))
+
+;;; https://www.gnu.org/licenses/license-list#GPLv2
+(define gpl2  (license "GPL 2"))
+(define gpl2+ (license "GPL 2+"))
+
+;;; https://www.gnu.org/licenses/license-list#GNUGPLv3
+(define gpl3  (license "GPL 3"))
+(define gpl3+ (license "GPL 3+"))
+
+;;; https://www.gnu.org/licenses/license-list#ijg
+(define ijg (license "IJG"))
+
+;;; https://www.gnu.org/licenses/license-list#IBMPL
+(define ibmpl1.0 (license "IBMPL 1.0"))
+
+;;; https://www.gnu.org/licenses/license-list#LGPLv2.1
+(define lgpl2.1  (license "LGPL 2.1"))
+(define lgpl2.1+ (license "LGPL 2.1+"))
+
+;;; https://www.gnu.org/licenses/license-list#LGPLv3
+(define lgpl3  (license "LGPL 3"))
+(define lgpl3+ (license "LGPL 3+"))
+
+;;; https://www.gnu.org/licenses/license-list#MPL-2.0
+(define mpl2.0 (license "MPL 2.0"))
+
+;;; https://www.gnu.org/licenses/license-list#OpenSSL
+(define openssl (license "OpenSSL"))
+
+;;; https://www.gnu.org/licenses/license-list#PublicDomain
+(define public-domain (license "Public Domain"))
+
+;;; https://www.gnu.org/licenses/license-list#X11License
+(define x11 (license "X11"))
+
+;;; https://www.gnu.org/licenses/license-list#ZLib
+(define zlib (license "Zlib"))
\ No newline at end of file
-- 
1.7.5.4


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

* Re: List of abbreviations for licenses
  2012-12-06 22:52       ` Nikita Karetnikov
@ 2012-12-07  9:43         ` Ludovic Courtès
  2012-12-07 19:53         ` Ludovic Courtès
  1 sibling, 0 replies; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-07  9:43 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Hi,

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

> From eb8229c7834dd1d249e8f5adc8382d00b289aa00 Mon Sep 17 00:00:00 2001
> From: Nikita Karetnikov <nikita@karetnikov.org>
> Date: Thu, 6 Dec 2012 22:39:57 +0000
> Subject: [PATCH] Add (guix licenses).
>
> * guix/licenses.scm: New file.
> * Makefile.am (MODULES): Add it.

Thanks, looks good to me.

> +(define-module (guix licenses)
> +  #:use-module (srfi srfi-9)
> +  #:export (asl2.0)
> +  #:export (boost1.0)
> +  #:export (bsd-2 bsd-3 bsd-4)
> +  #:export (cddl1.0)
> +  #:export (cpl1.0)
> +  #:export (epl1.0)
> +  #:export (gpl2 gpl2+ gpl3 gpl3+)
> +  #:export (ijg)
> +  #:export (ibmpl1.0)
> +  #:export (lgpl2.1 lgpl2.1+ lgpl3 lgpl3+)
> +  #:export (mpl2.0)
> +  #:export (openssl)
> +  #:export (public-domain)
> +  #:export (x11)
> +  #:export (zlib))

Can you make this a single #:export?

Also, make sure to export ‘license?’ and ‘license-name’.

Could you add a small “Commentary:” block at the beginning, and a “ends
here” lines at the end?  See, for instance, guix/download.scm for an
example.

This allows for on-line documentation:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> (module-commentary '(guix download))
$4 = "\n Produce fixed-output derivations with data fetched over HTTP or FTP.\n\n"
--8<---------------cut here---------------end--------------->8---

(Likewise with C-d RET in Geiser.)

Thanks!

Ludo’.

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

* Re: List of abbreviations for licenses
  2012-12-06 22:52       ` Nikita Karetnikov
  2012-12-07  9:43         ` Ludovic Courtès
@ 2012-12-07 19:53         ` Ludovic Courtès
  2012-12-07 22:34           ` Nikita Karetnikov
  1 sibling, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-07 19:53 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Hi again,

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

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

[...]

> +;;; https://www.gnu.org/licenses/license-list#apache2
> +(define asl2.0 (license "ASL 2.0"))

While we’re at it, we should add a ‘url’ field to <license>, so that the
URL above would be a field of the license object instead of being a
comment.

Thoughts?

Ludo’.

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

* Re: List of abbreviations for licenses
  2012-12-07 19:53         ` Ludovic Courtès
@ 2012-12-07 22:34           ` Nikita Karetnikov
  2012-12-07 23:24             ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2012-12-07 22:34 UTC (permalink / raw
  To: bug-guix

> Can you make this a single #:export?

Which one should I use? (The latter looks better, IMHO.)

  #:export (license? license-name asl2.0 boost1.0 bsd-2 bsd-3 bsd-4
            cddl1.0 cpl1.0 epl1.0 gpl2 gpl2+ gpl3 gpl3+ ijg ibmpl1.0 lgpl2.1
            lgpl2.1+ lgpl3 lgpl3+ mpl2.0 openssl public-domain x11 zlib)

  #:export (license? license-name
            asl2.0
            boost1.0
            bsd-2 bsd-3 bsd-4
            cddl1.0
            cpl1.0
            epl1.0
            gpl2 gpl2+ gpl3 gpl3+
            ijg
            ibmpl1.0 lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
            mpl2.0
            openssl
            public-domain
            x11
            zlib)

> While we’re at it, we should add a ‘url’ field to <license>, so that the
> URL above would be a field of the license object instead of being a
> comment.

I think that we should use 'uri' instead. [1]

[1] https://upload.wikimedia.org/wikipedia/commons/c/c3/URI_Euler_Diagram_no_lone_URIs.svg

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

* Re: List of abbreviations for licenses
  2012-12-07 22:34           ` Nikita Karetnikov
@ 2012-12-07 23:24             ` Ludovic Courtès
  2012-12-08  2:14               ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-07 23:24 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

>> Can you make this a single #:export?
>
> Which one should I use? (The latter looks better, IMHO.)

The latter, yes.

>> While we’re at it, we should add a ‘url’ field to <license>, so that the
>> URL above would be a field of the license object instead of being a
>> comment.
>
> I think that we should use 'uri' instead. [1]

Well, in practice that’ll be URLs to descriptive documents, but either
way is fine with me.

Ludo’.

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

* Re: List of abbreviations for licenses
  2012-12-07 23:24             ` Ludovic Courtès
@ 2012-12-08  2:14               ` Nikita Karetnikov
  2012-12-08 18:23                 ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2012-12-08  2:14 UTC (permalink / raw
  To: bug-guix

[-- Attachment #1: Type: text/plain, Size: 88 bytes --]

I've attached the patch.

'comment' is for various notes. (It's not necessarily a URI.)

[-- Attachment #2: 0001-Add-guix-licenses.patch --]
[-- Type: text/x-diff, Size: 6614 bytes --]

From 714e8352e34633edf6721ba32eed0bcc902281a2 Mon Sep 17 00:00:00 2001
From: Nikita Karetnikov <nikita@karetnikov.org>
Date: Sat, 8 Dec 2012 01:48:17 +0000
Subject: [PATCH] Add (guix licenses).

* guix/licenses.scm: New file.
* Makefile.am (MODULES): Add it.
---
 Makefile.am       |    1 +
 guix/licenses.scm |  171 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 172 insertions(+), 0 deletions(-)
 create mode 100644 guix/licenses.scm

diff --git a/Makefile.am b/Makefile.am
index 761f025..d52bd38 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -28,6 +28,7 @@ MODULES =					\
   guix/derivations.scm				\
   guix/download.scm				\
   guix/gnu-maintenance.scm			\
+  guix/licenses.scm				\
   guix/build-system.scm				\
   guix/build-system/gnu.scm			\
   guix/build-system/trivial.scm			\
diff --git a/guix/licenses.scm b/guix/licenses.scm
new file mode 100644
index 0000000..9c1b724
--- /dev/null
+++ b/guix/licenses.scm
@@ -0,0 +1,171 @@
+;;; Guix --- Nix package management from Guile.         -*- coding: utf-8 -*-
+;;; Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright (C) 2012 Nikita Karetnikov <nikita@karetnikov.org>
+;;;
+;;; This file is part of Guix.
+;;;
+;;; Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix licenses)
+  #:use-module (srfi srfi-9)
+  #:export (license? license-name license-uri license-comment
+            asl2.0
+            boost1.0
+            bsd-2 bsd-3 bsd-4
+            cddl1.0
+            cpl1.0
+            epl1.0
+            gpl2 gpl2+ gpl3 gpl3+
+            ijg
+            ibmpl1.0
+            lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
+            mpl2.0
+            openssl
+            public-domain
+            x11
+            zlib))
+
+(define-record-type <license>
+  (license name uri comment)
+  license?
+  (name    license-name)
+  (uri     license-uri)
+  (comment license-comment))
+
+;;; Commentary:
+;;;
+;;; Available licenses.
+;;;
+;;; This list is based on these links:
+;;; https://github.com/NixOS/nixpkgs/blob/master/pkgs/lib/licenses.nix
+;;; https://www.gnu.org/licenses/license-list
+;;;
+;;; Code:
+
+(define asl2.0
+  (license "ASL 2.0"
+           "http://directory.fsf.org/wiki/License:Apache2.0"
+           "https://www.gnu.org/licenses/license-list#apache2"))
+
+(define boost1.0
+  (license "Boost 1.0"
+           "http://directory.fsf.org/wiki/License:Boost1.0"
+           "https://www.gnu.org/licenses/license-list#boost"))
+
+(define bsd-2
+  (license "FreeBSD"
+           "http://directory.fsf.org/wiki/License:FreeBSD"
+           "https://www.gnu.org/licenses/license-list#FreeBSD"))
+
+(define bsd-3
+  (license "Modified BSD"
+           "http://directory.fsf.org/wiki/License:BSD_3Clause"
+           "https://www.gnu.org/licenses/license-list#ModifiedBSD"))
+
+(define bsd-4
+  (license "Original BSD"
+           "http://directory.fsf.org/wiki/License:BSD_4Clause"
+           "https://www.gnu.org/licenses/license-list#OriginalBSD"))
+
+(define cddl1.0
+  (license "CDDL 1.0"
+           "http://directory.fsf.org/wiki/License:CDDLv1.0"
+           "https://www.gnu.org/licenses/license-list#CDDL"))
+
+(define cpl1.0
+  (license "CPL 1.0"
+           "http://directory.fsf.org/wiki/License:CPLv1.0"
+           "https://www.gnu.org/licenses/license-list#CommonPublicLicense10"))
+
+(define epl1.0
+  (license "EPL 1.0"
+           "http://directory.fsf.org/wiki/License:EPLv1.0"
+           "https://www.gnu.org/licenses/license-list#EPL"))
+
+(define gpl2
+  (license "GPL 2"
+           "https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+           "https://www.gnu.org/licenses/license-list#GPLv2"))
+
+(define gpl2+
+  (license "GPL 2+"
+           "https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
+           "https://www.gnu.org/licenses/license-list#GPLv2"))
+
+(define gpl3
+  (license "GPL 3"
+           "https://www.gnu.org/licenses/gpl.html"
+           "https://www.gnu.org/licenses/license-list#GNUGPLv3"))
+
+(define gpl3+
+  (license "GPL 3+"
+           "https://www.gnu.org/licenses/gpl.html"
+           "https://www.gnu.org/licenses/license-list#GNUGPLv3"))
+
+(define ijg
+  (license "IJG"
+           "http://directory.fsf.org/wiki/License:JPEG"
+           "https://www.gnu.org/licenses/license-list#ijg"))
+
+(define ibmpl1.0
+  (license "IBMPL 1.0"
+           "http://directory.fsf.org/wiki/License:IBMPLv1.0"
+           "https://www.gnu.org/licenses/license-list#IBMPL"))
+
+(define lgpl2.1
+  (license "LGPL 2.1"
+           "https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+           "https://www.gnu.org/licenses/license-list#LGPLv2.1"))
+
+(define lgpl2.1+
+  (license "LGPL 2.1+"
+           "https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html"
+           "https://www.gnu.org/licenses/license-list#LGPLv2.1"))
+
+(define lgpl3
+  (license "LGPL 3"
+           "https://www.gnu.org/licenses/lgpl.html"
+           "https://www.gnu.org/licenses/license-list#LGPLv3"))
+
+(define lgpl3+
+  (license "LGPL 3+"
+           "https://www.gnu.org/licenses/lgpl.html"
+           "https://www.gnu.org/licenses/license-list#LGPLv3"))
+
+(define mpl2.0
+  (license "MPL 2.0"
+           "http://directory.fsf.org/wiki/License:MPLv2.0"
+           "https://www.gnu.org/licenses/license-list#MPL-2.0"))
+
+(define openssl
+  (license "OpenSSL"
+           "http://directory.fsf.org/wiki/License:OpenSSL"
+           "https://www.gnu.org/licenses/license-list#OpenSSL"))
+
+(define public-domain
+  (license "Public Domain"
+           "http://directory.fsf.org/wiki/License:PublicDomain"
+           "https://www.gnu.org/licenses/license-list#PublicDomain"))
+
+(define x11
+  (license "X11"
+           "http://directory.fsf.org/wiki/License:X11"
+           "https://www.gnu.org/licenses/license-list#X11License"))
+
+(define zlib
+  (license "Zlib"
+           "http://www.gzip.org/zlib/zlib_license.html"
+           "https://www.gnu.org/licenses/license-list#ZLib"))
+
+;;; licenses.scm ends here
-- 
1.7.5.4


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

* Re: List of abbreviations for licenses
  2012-12-08  2:14               ` Nikita Karetnikov
@ 2012-12-08 18:23                 ` Ludovic Courtès
  2012-12-09  2:47                   ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-08 18:23 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

> From 714e8352e34633edf6721ba32eed0bcc902281a2 Mon Sep 17 00:00:00 2001
> From: Nikita Karetnikov <nikita@karetnikov.org>
> Date: Sat, 8 Dec 2012 01:48:17 +0000
> Subject: [PATCH] Add (guix licenses).
>
> * guix/licenses.scm: New file.
> * Makefile.am (MODULES): Add it.

Applied, thanks!

Next step will be to use it everywhere.

Ludo’.

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

* Re: List of abbreviations for licenses
  2012-12-08 18:23                 ` Ludovic Courtès
@ 2012-12-09  2:47                   ` Nikita Karetnikov
  2012-12-09 13:41                     ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2012-12-09  2:47 UTC (permalink / raw
  To: bug-guix

> Next step will be to use it everywhere.

How to change the recipes that are already in the repo? Should we do
it in a single commit?

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

* Re: List of abbreviations for licenses
  2012-12-09  2:47                   ` Nikita Karetnikov
@ 2012-12-09 13:41                     ` Ludovic Courtès
  2012-12-11  8:24                       ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-09 13:41 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

> How to change the recipes that are already in the repo? Should we do
> it in a single commit?

Yes, in a single commit.  Just use a simple ‘sed’ script or similar.

Ludo’.

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

* Re: List of abbreviations for licenses
  2012-12-09 13:41                     ` Ludovic Courtès
@ 2012-12-11  8:24                       ` Nikita Karetnikov
  2012-12-11 10:24                         ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2012-12-11  8:24 UTC (permalink / raw
  To: bug-guix

Hi,

I've found out that we can't use (guix licenses) right now; 'bzip2'
and 'flex' use BSD-like licenses that differ from 'bsd-2', 'bsd-3',
and 'bsd-4'.

There are two ways to fix the problem. We can create new licenses for
such packages (e.g. 'bzip2'), but it will be tricky. I propose to use
the following variable instead:

(define bsd-like
  (license "BSD-like"
           #f
          "This is not a real license. It's just a placeholder for
           packages that use BSD-like licenses which don't fall into the
           following categories: 'bsd-2', 'bsd-3', and 'bsd-4'. Check the
           source code for details.")

What do you think?

Also, I'll add 'expat', which is used by 'libffi'.

Nikita

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

* Re: List of abbreviations for licenses
  2012-12-11  8:24                       ` Nikita Karetnikov
@ 2012-12-11 10:24                         ` Ludovic Courtès
  2012-12-11 14:04                           ` Nikita Karetnikov
  0 siblings, 1 reply; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-11 10:24 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Hi,

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

> There are two ways to fix the problem. We can create new licenses for
> such packages (e.g. 'bzip2'), but it will be tricky. I propose to use
> the following variable instead:
>
> (define bsd-like
>   (license "BSD-like"
>            #f
>           "This is not a real license. It's just a placeholder for
>            packages that use BSD-like licenses which don't fall into the
>            following categories: 'bsd-2', 'bsd-3', and 'bsd-4'. Check the
>            source code for details.")
>
> What do you think?

What about:

  (define* (bsd-style uri #:optional (comment ""))
    (license "BSD-style"
             uri
             (string-append
              "This is a BSD-style, non-copyleft free software license.  "
              "Check the URI for details.  "
              comment)))

So we’d write:

  (package
    (name "bzip2")
    ;; ...
    (license (bsd-style "file://LICENSE"
                        "See LICENSE in the distribution.")))

WDYT?

Ludo’.

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

* Re: List of abbreviations for licenses
  2012-12-11 10:24                         ` Ludovic Courtès
@ 2012-12-11 14:04                           ` Nikita Karetnikov
  2012-12-11 14:31                             ` Ludovic Courtès
  0 siblings, 1 reply; 17+ messages in thread
From: Nikita Karetnikov @ 2012-12-11 14:04 UTC (permalink / raw
  To: bug-guix

> WDYT?

That's even better. Why did you use trailing whitespaces?

Nikita

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

* Re: List of abbreviations for licenses
  2012-12-11 14:04                           ` Nikita Karetnikov
@ 2012-12-11 14:31                             ` Ludovic Courtès
  0 siblings, 0 replies; 17+ messages in thread
From: Ludovic Courtès @ 2012-12-11 14:31 UTC (permalink / raw
  To: Nikita Karetnikov; +Cc: bug-guix

Nikita Karetnikov <nikita.karetnikov@gmail.com> skribis:

>> WDYT?
>
> That's even better. Why did you use trailing whitespaces?

So there are two spaces after sentence-terminating periods.

Ludo’.

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

end of thread, other threads:[~2012-12-11 14:32 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-29  4:54 List of abbreviations for licenses Nikita Karetnikov
2012-11-29 22:05 ` Ludovic Courtès
2012-11-29 23:53   ` Jeff Mickey
2012-11-30  0:49     ` Ludovic Courtès
2012-12-06 22:52       ` Nikita Karetnikov
2012-12-07  9:43         ` Ludovic Courtès
2012-12-07 19:53         ` Ludovic Courtès
2012-12-07 22:34           ` Nikita Karetnikov
2012-12-07 23:24             ` Ludovic Courtès
2012-12-08  2:14               ` Nikita Karetnikov
2012-12-08 18:23                 ` Ludovic Courtès
2012-12-09  2:47                   ` Nikita Karetnikov
2012-12-09 13:41                     ` Ludovic Courtès
2012-12-11  8:24                       ` Nikita Karetnikov
2012-12-11 10:24                         ` Ludovic Courtès
2012-12-11 14:04                           ` Nikita Karetnikov
2012-12-11 14:31                             ` 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).