lint: Define some procedures for analysing code in phases.
[jackhill/guix/guix.git] / guix / licenses.scm
index 952c3bf..3affe1e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2014, 2015, 2017, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
 ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
@@ -8,12 +8,16 @@
 ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
 ;;; Copyright © 2016 Rene Saavedra <rennes@openmailbox.org>
-;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
 ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
 ;;; Copyright © 2017 Petter <petter@mykolab.ch>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2020 André Batista <nandre@riseup.net>
+;;; Copyright © 2020 Helio Machado <0x2b3bfa0+guix@googlemail.com>
+;;; Copyright © 2021 Felix Gruber <felgru@posteo.net>
+;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (srfi srfi-9)
   #:export (license? license-name license-uri license-comment
             agpl1 agpl3 agpl3+
+            apsl2
             asl1.1 asl2.0
             boost1.0
-            bsd-2 bsd-3 bsd-4
+            bsd-0 bsd-1 bsd-2 bsd-3 bsd-4
             non-copyleft
-            bsd-style                             ;deprecated!
             cc0
             cc-by2.0 cc-by3.0 cc-by4.0
             cc-by-sa2.0 cc-by-sa3.0 cc-by-sa4.0
             artistic2.0 clarified-artistic
             copyleft-next
             cpl1.0
+            cua-opl1.0
             edl1.0
             epl1.0
             epl2.0
+            eupl1.2
             expat
             freetype
             freebsd-doc
             gpl1 gpl1+ gpl2 gpl2+ gpl3 gpl3+
             gfl1.0
             fdl1.1+ fdl1.2+ fdl1.3+
-            opl1.0+
+            opl1.0+ osl2.1
             isc
             ijg
             ibmpl1.0
             imlib2
             ipa
             knuth
+            lal1.3
             lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ llgpl
             lppl lppl1.0+ lppl1.1+ lppl1.2 lppl1.2+
             lppl1.3 lppl1.3+
             ms-pl
             ncsa
             nmap
+            ogl-psi1.0
             openldap2.8 openssl
             perl-license
             psfl public-domain
             qpl
+            qwt1.0
             repoze
             ruby
             sgifreeb2.0
             silofl1.1
             sleepycat
             tcl/tk
+            unicode
             unlicense
             vim
             w3c
             fsf-free
             wtfpl2
             wxwindows3.1+
+            hpnd
             fsdg-compatible))
 
 (define-record-type <license>
 ;;; https://github.com/NixOS/nixpkgs/blob/master/lib/licenses.nix
 ;;; https://www.gnu.org/licenses/license-list
 ;;;
+;;; Please update spdx-string->license from guix/import/utils.scm
+;;; when modifying this list to avoid mismatches.
+;;;
 ;;; Code:
 
 (define agpl1
            "https://gnu.org/licenses/agpl.html"
            "https://gnu.org/licenses/why-affero-gpl.html"))
 
+(define apsl2
+  (license "APSL 2.0"
+           "https://directory.fsf.org/wiki/License:APSL-2.0"
+           "https://www.gnu.org/licenses/license-list.html#apsl2"))
+
 (define asl1.1
   (license "ASL 1.1"
            "http://directory.fsf.org/wiki/License:Apache1.1"
            "http://directory.fsf.org/wiki/License:Boost1.0"
            "https://www.gnu.org/licenses/license-list#boost"))
 
+(define bsd-0
+  (license "Zero-Clause BSD"
+           "https://spdx.org/licenses/0BSD.html"
+           "https://opensource.org/licenses/0BSD"))
+
+(define bsd-1
+  (license "BSD 1-Clause"
+           "https://spdx.org/licenses/BSD-1-Clause.html"
+           "https://opensource.org/licenses/BSD-1-Clause"))
+
 (define bsd-2
   (license "FreeBSD"
            "http://directory.fsf.org/wiki/License:FreeBSD"
@@ -170,12 +199,6 @@ at URI, which may be a file:// URI pointing the package's tree."
             "Check the URI for details.  "
             comment)))
 
-(define bsd-style
-  ;; This alias is kept for backward-compatibility.  Do not use it for new
-  ;; packages: it is ambiguous, as rightfully explained at
-  ;; <http://www.gnu.org/philosophy/words-to-avoid.html#BSD-style>.
-  non-copyleft)
-
 (define cc0
   (license "CC0"
            "http://directory.fsf.org/wiki/License:CC0"
@@ -265,6 +288,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://directory.fsf.org/wiki/License:CPLv1.0"
            "https://www.gnu.org/licenses/license-list#CommonPublicLicense10"))
 
+(define cua-opl1.0
+  (license "CUA Office Public License v1.0"
+           "https://spdx.org/licenses/CUA-OPL-1.0.html"
+           "https://opensource.org/licenses/CUA-OPL-1.0"))
+
 (define edl1.0
   (license "EDL 1.0"
            "http://directory.fsf.org/wiki/License:EDLv1.0"
@@ -280,6 +308,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "https://www.eclipse.org/legal/epl-2.0/"
            "https://www.gnu.org/licenses/license-list#EPL2"))
 
+(define eupl1.2
+  (license "EUPL 1.2"
+           "https://directory.fsf.org/wiki/License:EUPL-1.2"
+           "https://www.gnu.org/licenses/license-list#EUPL-1.2"))
+
 (define expat
   (license "Expat"
            "http://directory.fsf.org/wiki/License:Expat"
@@ -292,7 +325,7 @@ at URI, which may be a file:// URI pointing the package's tree."
 
 (define giftware
   (license "Giftware"
-           "http://liballeg.org/license.html"
+           "https://liballeg.org/license.html"
            "The Allegro 4 license"))
 
 (define gpl1
@@ -357,6 +390,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://opencontent.org/openpub/"
            "https://www.gnu.org/licenses/license-list#OpenPublicationL"))
 
+(define osl2.1
+  (license "The Open Software License 2.1"
+           "https://opensource.org/licenses/osl-2.1.php"
+           "https://www.gnu.org/licenses/license-list#OSL"))
+
 (define isc
   (license "ISC"
            "http://directory.fsf.org/wiki/License:ISC"
@@ -387,6 +425,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://www.ctan.org/license/knuth"
            "Modification are only permitted under a different name."))
 
+(define lal1.3
+  (license "Free Art License 1.3"
+           "http://artlibre.org/licence/lal/en/"
+           "https://www.gnu.org/licenses/license-list#FreeArt"))
+
 (define lgpl2.0
   (license "LGPL 2.0"
            "https://www.gnu.org/licenses/old-licenses/lgpl-2.0.html"
@@ -522,6 +565,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "https://svn.nmap.org/nmap/COPYING"
            "https://fedoraproject.org/wiki/Licensing/Nmap"))
 
+(define ogl-psi1.0
+  (license "Open Government Licence for Public Sector Information"
+           "https://www.nationalarchives.gov.uk/doc/open-government-licence/version/1/"
+           #f))
+
 (define openssl
   (license "OpenSSL"
            "http://directory.fsf.org/wiki/License:OpenSSL"
@@ -554,6 +602,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://directory.fsf.org/wiki/License:QPLv1.0"
            "http://www.gnu.org/licenses/license-list.html#QPL"))
 
+(define qwt1.0
+  (license "QWT 1.0"
+           "http://qwt.sourceforge.net/qwtlicense.html"
+           "GNU Lesser General Public License with exceptions"))
+
 (define repoze
   (license "Repoze"
            "http://repoze.org/LICENSE.txt"
@@ -590,6 +643,11 @@ at URI, which may be a file:// URI pointing the package's tree."
            "http://directory.fsf.org/wiki/License:Vim7.2"
            "http://www.gnu.org/licenses/license-list.html#Vim"))
 
+(define unicode
+  (license "Unicode"
+           "https://directory.fsf.org/wiki/License:Unicode"
+           "http://www.gnu.org/licenses/license-list.html#Unicode"))
+
 (define unlicense
   (license "Unlicense"
            "https://unlicense.org/"
@@ -632,9 +690,14 @@ which may be a file:// URI pointing the package's tree."
 
 (define zlib
   (license "Zlib"
-           "http://www.gzip.org/zlib/zlib_license.html"
+           "https://zlib.net/zlib_license.html"
            "https://www.gnu.org/licenses/license-list#ZLib"))
 
+(define hpnd
+  (license "HPND"
+           "https://directory.fsf.org/wiki/License:HPND"
+           "https://www.gnu.org/licenses/license-list#HPND"))
+
 (define* (fsf-free uri #:optional (comment ""))
   "Return a license that does not fit any of the ones above or a collection
 of licenses, approved as free by the FSF.  More details can be found at URI."