diff --git a/doc/spdx-3.10-2020-08-03.csv b/doc/spdx-3.10-2020-08-03.csv new file mode 100644 index 00000000..c915ce29 --- /dev/null +++ b/doc/spdx-3.10-2020-08-03.csv @@ -0,0 +1,413 @@ +Full name Identifier FSF Free/Libre? OSI Approved? Text +BSD Zero Clause License 0BSD Y License Text +Attribution Assurance License AAL Y License Text +Abstyles License Abstyles License Text +Adobe Systems Incorporated Source Code License Agreement Adobe-2006 License Text +Adobe Glyph List License Adobe-Glyph License Text +Amazon Digital Services License ADSL License Text +Academic Free License v1.1 AFL-1.1 Y Y License Text +Academic Free License v1.2 AFL-1.2 Y Y License Text +Academic Free License v2.0 AFL-2.0 Y Y License Text +Academic Free License v2.1 AFL-2.1 Y Y License Text +Academic Free License v3.0 AFL-3.0 Y Y License Text +Afmparse License Afmparse License Text +Affero General Public License v1.0 only AGPL-1.0-only License Text +Affero General Public License v1.0 or later AGPL-1.0-or-later License Text +GNU Affero General Public License v3.0 only AGPL-3.0-only Y Y License Text +GNU Affero General Public License v3.0 or later AGPL-3.0-or-later Y Y License Text +Aladdin Free Public License Aladdin License Text +AMD's plpa_map.c License AMDPLPA License Text +Apple MIT License AML License Text +Academy of Motion Picture Arts and Sciences BSD AMPAS License Text +ANTLR Software Rights Notice ANTLR-PD License Text +Apache License 1.0 Apache-1.0 Y License Text +Apache License 1.1 Apache-1.1 Y Y License Text +Apache License 2.0 Apache-2.0 Y Y License Text +Adobe Postscript AFM License APAFML License Text +Adaptive Public License 1.0 APL-1.0 Y License Text +Apple Public Source License 1.0 APSL-1.0 Y License Text +Apple Public Source License 1.1 APSL-1.1 Y License Text +Apple Public Source License 1.2 APSL-1.2 Y License Text +Apple Public Source License 2.0 APSL-2.0 Y Y License Text +Artistic License 1.0 Artistic-1.0 Y License Text +Artistic License 1.0 w/clause 8 Artistic-1.0-cl8 Y License Text +Artistic License 1.0 (Perl) Artistic-1.0-Perl Y License Text +Artistic License 2.0 Artistic-2.0 Y Y License Text +Bahyph License Bahyph License Text +Barr License Barr License Text +Beerware License Beerware License Text +BitTorrent Open Source License v1.0 BitTorrent-1.0 License Text +BitTorrent Open Source License v1.1 BitTorrent-1.1 Y License Text +SQLite Blessing blessing License Text +Blue Oak Model License 1.0.0 BlueOak-1.0.0 License Text +Borceux license Borceux License Text +BSD 1-Clause License BSD-1-Clause Y License Text +BSD 2-Clause "Simplified" License BSD-2-Clause Y License Text +BSD-2-Clause Plus Patent License BSD-2-Clause-Patent Y License Text +BSD 2-Clause with views sentence BSD-2-Clause-Views License Text +BSD 3-Clause "New" or "Revised" License BSD-3-Clause Y Y License Text +BSD with attribution BSD-3-Clause-Attribution License Text +BSD 3-Clause Clear License BSD-3-Clause-Clear Y License Text +Lawrence Berkeley National Labs BSD variant license BSD-3-Clause-LBNL Y License Text +BSD 3-Clause No Nuclear License BSD-3-Clause-No-Nuclear-License License Text +BSD 3-Clause No Nuclear License 2014 BSD-3-Clause-No-Nuclear-License-2014 License Text +BSD 3-Clause No Nuclear Warranty BSD-3-Clause-No-Nuclear-Warranty License Text +BSD 3-Clause Open MPI variant BSD-3-Clause-Open-MPI License Text +BSD 4-Clause "Original" or "Old" License BSD-4-Clause Y License Text +BSD-4-Clause (University of California-Specific) BSD-4-Clause-UC License Text +BSD Protection License BSD-Protection License Text +BSD Source Code Attribution BSD-Source-Code License Text +Boost Software License 1.0 BSL-1.0 Y Y License Text +bzip2 and libbzip2 License v1.0.5 bzip2-1.0.5 License Text +bzip2 and libbzip2 License v1.0.6 bzip2-1.0.6 License Text +Cryptographic Autonomy License 1.0 CAL-1.0 Y License Text +Cryptographic Autonomy License 1.0 (Combined Work Exception) CAL-1.0-Combined-Work-Exception Y License Text +Caldera License Caldera License Text +Computer Associates Trusted Open Source License 1.1 CATOSL-1.1 Y License Text +Creative Commons Attribution 1.0 Generic CC-BY-1.0 License Text +Creative Commons Attribution 2.0 Generic CC-BY-2.0 License Text +Creative Commons Attribution 2.5 Generic CC-BY-2.5 License Text +Creative Commons Attribution 3.0 Unported CC-BY-3.0 License Text +Creative Commons Attribution 3.0 Austria CC-BY-3.0-AT License Text +Creative Commons Attribution 4.0 International CC-BY-4.0 Y License Text +Creative Commons Attribution Non Commercial 1.0 Generic CC-BY-NC-1.0 License Text +Creative Commons Attribution Non Commercial 2.0 Generic CC-BY-NC-2.0 License Text +Creative Commons Attribution Non Commercial 2.5 Generic CC-BY-NC-2.5 License Text +Creative Commons Attribution Non Commercial 3.0 Unported CC-BY-NC-3.0 License Text +Creative Commons Attribution Non Commercial 4.0 International CC-BY-NC-4.0 License Text +Creative Commons Attribution Non Commercial No Derivatives 1.0 Generic CC-BY-NC-ND-1.0 License Text +Creative Commons Attribution Non Commercial No Derivatives 2.0 Generic CC-BY-NC-ND-2.0 License Text +Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic CC-BY-NC-ND-2.5 License Text +Creative Commons Attribution Non Commercial No Derivatives 3.0 Unported CC-BY-NC-ND-3.0 License Text +Creative Commons Attribution Non Commercial No Derivatives 3.0 IGO CC-BY-NC-ND-3.0-IGO License Text +Creative Commons Attribution Non Commercial No Derivatives 4.0 International CC-BY-NC-ND-4.0 License Text +Creative Commons Attribution Non Commercial Share Alike 1.0 Generic CC-BY-NC-SA-1.0 License Text +Creative Commons Attribution Non Commercial Share Alike 2.0 Generic CC-BY-NC-SA-2.0 License Text +Creative Commons Attribution Non Commercial Share Alike 2.5 Generic CC-BY-NC-SA-2.5 License Text +Creative Commons Attribution Non Commercial Share Alike 3.0 Unported CC-BY-NC-SA-3.0 License Text +Creative Commons Attribution Non Commercial Share Alike 4.0 International CC-BY-NC-SA-4.0 License Text +Creative Commons Attribution No Derivatives 1.0 Generic CC-BY-ND-1.0 License Text +Creative Commons Attribution No Derivatives 2.0 Generic CC-BY-ND-2.0 License Text +Creative Commons Attribution No Derivatives 2.5 Generic CC-BY-ND-2.5 License Text +Creative Commons Attribution No Derivatives 3.0 Unported CC-BY-ND-3.0 License Text +Creative Commons Attribution No Derivatives 4.0 International CC-BY-ND-4.0 License Text +Creative Commons Attribution Share Alike 1.0 Generic CC-BY-SA-1.0 License Text +Creative Commons Attribution Share Alike 2.0 Generic CC-BY-SA-2.0 License Text +Creative Commons Attribution Share Alike 2.5 Generic CC-BY-SA-2.5 License Text +Creative Commons Attribution Share Alike 3.0 Unported CC-BY-SA-3.0 License Text +Creative Commons Attribution-Share Alike 3.0 Austria CC-BY-SA-3.0-AT License Text +Creative Commons Attribution Share Alike 4.0 International CC-BY-SA-4.0 Y License Text +Creative Commons Public Domain Dedication and Certification CC-PDDC License Text +Creative Commons Zero v1.0 Universal CC0-1.0 Y License Text +Common Development and Distribution License 1.0 CDDL-1.0 Y Y License Text +Common Development and Distribution License 1.1 CDDL-1.1 License Text +Community Data License Agreement Permissive 1.0 CDLA-Permissive-1.0 License Text +Community Data License Agreement Sharing 1.0 CDLA-Sharing-1.0 License Text +CeCILL Free Software License Agreement v1.0 CECILL-1.0 License Text +CeCILL Free Software License Agreement v1.1 CECILL-1.1 License Text +CeCILL Free Software License Agreement v2.0 CECILL-2.0 Y License Text +CeCILL Free Software License Agreement v2.1 CECILL-2.1 Y License Text +CeCILL-B Free Software License Agreement CECILL-B Y License Text +CeCILL-C Free Software License Agreement CECILL-C Y License Text +CERN Open Hardware Licence v1.1 CERN-OHL-1.1 License Text +CERN Open Hardware Licence v1.2 CERN-OHL-1.2 License Text +CERN Open Hardware Licence Version 2 - Permissive CERN-OHL-P-2.0 License Text +CERN Open Hardware Licence Version 2 - Strongly Reciprocal CERN-OHL-S-2.0 License Text +CERN Open Hardware Licence Version 2 - Weakly Reciprocal CERN-OHL-W-2.0 License Text +Clarified Artistic License ClArtistic Y License Text +CNRI Jython License CNRI-Jython License Text +CNRI Python License CNRI-Python Y License Text +CNRI Python Open Source GPL Compatible License Agreement CNRI-Python-GPL-Compatible License Text +Condor Public License v1.1 Condor-1.1 Y License Text +copyleft-next 0.3.0 copyleft-next-0.3.0 License Text +copyleft-next 0.3.1 copyleft-next-0.3.1 License Text +Common Public Attribution License 1.0 CPAL-1.0 Y Y License Text +Common Public License 1.0 CPL-1.0 Y Y License Text +Code Project Open License 1.02 CPOL-1.02 License Text +Crossword License Crossword License Text +CrystalStacker License CrystalStacker License Text +CUA Office Public License v1.0 CUA-OPL-1.0 Y License Text +Cube License Cube License Text +curl License curl License Text +Deutsche Freie Software Lizenz D-FSL-1.0 License Text +diffmark license diffmark License Text +DOC License DOC License Text +Dotseqn License Dotseqn License Text +DSDP License DSDP License Text +dvipdfm License dvipdfm License Text +Educational Community License v1.0 ECL-1.0 Y License Text +Educational Community License v2.0 ECL-2.0 Y Y License Text +Eiffel Forum License v1.0 EFL-1.0 Y License Text +Eiffel Forum License v2.0 EFL-2.0 Y Y License Text +eGenix.com Public License 1.1.0 eGenix License Text +Entessa Public License v1.0 Entessa Y License Text +EPICS Open License EPICS License Text +Eclipse Public License 1.0 EPL-1.0 Y Y License Text +Eclipse Public License 2.0 EPL-2.0 Y Y License Text +Erlang Public License v1.1 ErlPL-1.1 License Text +Etalab Open License 2.0 etalab-2.0 License Text +EU DataGrid Software License EUDatagrid Y Y License Text +European Union Public License 1.0 EUPL-1.0 License Text +European Union Public License 1.1 EUPL-1.1 Y Y License Text +European Union Public License 1.2 EUPL-1.2 Y Y License Text +Eurosym License Eurosym License Text +Fair License Fair Y License Text +Frameworx Open License 1.0 Frameworx-1.0 Y License Text +FreeImage Public License v1.0 FreeImage License Text +FSF All Permissive License FSFAP Y License Text +FSF Unlimited License FSFUL License Text +FSF Unlimited License (with License Retention) FSFULLR License Text +Freetype Project License FTL Y License Text +GNU Free Documentation License v1.1 only - invariants GFDL-1.1-invariants-only License Text +GNU Free Documentation License v1.1 or later - invariants GFDL-1.1-invariants-or-later License Text +GNU Free Documentation License v1.1 only - no invariants GFDL-1.1-no-invariants-only License Text +GNU Free Documentation License v1.1 or later - no invariants GFDL-1.1-no-invariants-or-later License Text +GNU Free Documentation License v1.1 only GFDL-1.1-only Y License Text +GNU Free Documentation License v1.1 or later GFDL-1.1-or-later Y License Text +GNU Free Documentation License v1.2 only - invariants GFDL-1.2-invariants-only License Text +GNU Free Documentation License v1.2 or later - invariants GFDL-1.2-invariants-or-later License Text +GNU Free Documentation License v1.2 only - no invariants GFDL-1.2-no-invariants-only License Text +GNU Free Documentation License v1.2 or later - no invariants GFDL-1.2-no-invariants-or-later License Text +GNU Free Documentation License v1.2 only GFDL-1.2-only Y License Text +GNU Free Documentation License v1.2 or later GFDL-1.2-or-later Y License Text +GNU Free Documentation License v1.3 only - invariants GFDL-1.3-invariants-only License Text +GNU Free Documentation License v1.3 or later - invariants GFDL-1.3-invariants-or-later License Text +GNU Free Documentation License v1.3 only - no invariants GFDL-1.3-no-invariants-only License Text +GNU Free Documentation License v1.3 or later - no invariants GFDL-1.3-no-invariants-or-later License Text +GNU Free Documentation License v1.3 only GFDL-1.3-only Y License Text +GNU Free Documentation License v1.3 or later GFDL-1.3-or-later Y License Text +Giftware License Giftware License Text +GL2PS License GL2PS License Text +3dfx Glide License Glide License Text +Glulxe License Glulxe License Text +Good Luck With That Public License GLWTPL License Text +gnuplot License gnuplot Y License Text +GNU General Public License v1.0 only GPL-1.0-only License Text +GNU General Public License v1.0 or later GPL-1.0-or-later License Text +GNU General Public License v2.0 only GPL-2.0-only Y Y License Text +GNU General Public License v2.0 or later GPL-2.0-or-later Y Y License Text +GNU General Public License v3.0 only GPL-3.0-only Y Y License Text +GNU General Public License v3.0 or later GPL-3.0-or-later Y Y License Text +gSOAP Public License v1.3b gSOAP-1.3b License Text +Haskell Language Report License HaskellReport License Text +Hippocratic License 2.1 Hippocratic-2.1 License Text +Historical Permission Notice and Disclaimer HPND Y Y License Text +Historical Permission Notice and Disclaimer - sell variant HPND-sell-variant License Text +IBM PowerPC Initialization and Boot Software IBM-pibs License Text +ICU License ICU License Text +Independent JPEG Group License IJG Y License Text +ImageMagick License ImageMagick License Text +iMatix Standard Function Library Agreement iMatix Y License Text +Imlib2 License Imlib2 Y License Text +Info-ZIP License Info-ZIP License Text +Intel Open Source License Intel Y Y License Text +Intel ACPI Software License Agreement Intel-ACPI License Text +Interbase Public License v1.0 Interbase-1.0 License Text +IPA Font License IPA Y Y License Text +IBM Public License v1.0 IPL-1.0 Y Y License Text +ISC License ISC Y Y License Text +JasPer License JasPer-2.0 License Text +Japan Network Information Center License JPNIC License Text +JSON License JSON License Text +Licence Art Libre 1.2 LAL-1.2 License Text +Licence Art Libre 1.3 LAL-1.3 License Text +Latex2e License Latex2e License Text +Leptonica License Leptonica License Text +GNU Library General Public License v2 only LGPL-2.0-only Y License Text +GNU Library General Public License v2 or later LGPL-2.0-or-later Y License Text +GNU Lesser General Public License v2.1 only LGPL-2.1-only Y Y License Text +GNU Lesser General Public License v2.1 or later LGPL-2.1-or-later Y Y License Text +GNU Lesser General Public License v3.0 only LGPL-3.0-only Y Y License Text +GNU Lesser General Public License v3.0 or later LGPL-3.0-or-later Y Y License Text +Lesser General Public License For Linguistic Resources LGPLLR License Text +libpng License Libpng License Text +PNG Reference Library version 2 libpng-2.0 License Text +libselinux public domain notice libselinux-1.0 License Text +libtiff License libtiff License Text +Licence Libre du Québec – Permissive version 1.1 LiLiQ-P-1.1 Y License Text +Licence Libre du Québec – Réciprocité version 1.1 LiLiQ-R-1.1 Y License Text +Licence Libre du Québec – Réciprocité forte version 1.1 LiLiQ-Rplus-1.1 Y License Text +Linux Kernel Variant of OpenIB.org license Linux-OpenIB License Text +Lucent Public License Version 1.0 LPL-1.0 Y License Text +Lucent Public License v1.02 LPL-1.02 Y Y License Text +LaTeX Project Public License v1.0 LPPL-1.0 License Text +LaTeX Project Public License v1.1 LPPL-1.1 License Text +LaTeX Project Public License v1.2 LPPL-1.2 Y License Text +LaTeX Project Public License v1.3a LPPL-1.3a Y License Text +LaTeX Project Public License v1.3c LPPL-1.3c Y License Text +MakeIndex License MakeIndex License Text +The MirOS Licence MirOS Y License Text +MIT License MIT Y Y License Text +MIT No Attribution MIT-0 License Text +Enlightenment License (e16) MIT-advertising License Text +CMU License MIT-CMU License Text +enna License MIT-enna License Text +feh License MIT-feh License Text +MIT +no-false-attribs license MITNFA License Text +Motosoto License Motosoto Y License Text +mpich2 License mpich2 License Text +Mozilla Public License 1.0 MPL-1.0 Y License Text +Mozilla Public License 1.1 MPL-1.1 Y Y License Text +Mozilla Public License 2.0 MPL-2.0 Y Y License Text +Mozilla Public License 2.0 (no copyleft exception) MPL-2.0-no-copyleft-exception Y License Text +Microsoft Public License MS-PL Y Y License Text +Microsoft Reciprocal License MS-RL Y Y License Text +Matrix Template Library License MTLL License Text +Mulan Permissive Software License, Version 1 MulanPSL-1.0 License Text +Mulan Permissive Software License, Version 2 MulanPSL-2.0 Y License Text +Multics License Multics Y License Text +Mup License Mup License Text +NASA Open Source Agreement 1.3 NASA-1.3 Y License Text +Naumen Public License Naumen Y License Text +Net Boolean Public License v1 NBPL-1.0 License Text +Non-Commercial Government Licence NCGL-UK-2.0 License Text +University of Illinois/NCSA Open Source License NCSA Y Y License Text +Net-SNMP License Net-SNMP License Text +NetCDF license NetCDF License Text +Newsletr License Newsletr License Text +Nethack General Public License NGPL Y License Text +NIST Public Domain Notice NIST-PD License Text +NIST Public Domain Notice with license fallback NIST-PD-fallback License Text +Norwegian Licence for Open Government Data NLOD-1.0 License Text +No Limit Public License NLPL License Text +Nokia Open Source License Nokia Y Y License Text +Netizen Open Source License NOSL Y License Text +Noweb License Noweb License Text +Netscape Public License v1.0 NPL-1.0 Y License Text +Netscape Public License v1.1 NPL-1.1 Y License Text +Non-Profit Open Software License 3.0 NPOSL-3.0 Y License Text +NRL License NRL License Text +NTP License NTP Y License Text +NTP No Attribution NTP-0 License Text +Open Use of Data Agreement v1.0 O-UDA-1.0 License Text +Open CASCADE Technology Public License OCCT-PL License Text +OCLC Research Public License 2.0 OCLC-2.0 Y License Text +ODC Open Database License v1.0 ODbL-1.0 Y License Text +Open Data Commons Attribution License v1.0 ODC-By-1.0 License Text +SIL Open Font License 1.0 OFL-1.0 Y License Text +SIL Open Font License 1.0 with no Reserved Font Name OFL-1.0-no-RFN License Text +SIL Open Font License 1.0 with Reserved Font Name OFL-1.0-RFN License Text +SIL Open Font License 1.1 OFL-1.1 Y Y License Text +SIL Open Font License 1.1 with no Reserved Font Name OFL-1.1-no-RFN Y License Text +SIL Open Font License 1.1 with Reserved Font Name OFL-1.1-RFN Y License Text +OGC Software License, Version 1.0 OGC-1.0 License Text +Open Government Licence - Canada OGL-Canada-2.0 License Text +Open Government Licence v1.0 OGL-UK-1.0 License Text +Open Government Licence v2.0 OGL-UK-2.0 License Text +Open Government Licence v3.0 OGL-UK-3.0 License Text +Open Group Test Suite License OGTSL Y License Text +Open LDAP Public License v1.1 OLDAP-1.1 License Text +Open LDAP Public License v1.2 OLDAP-1.2 License Text +Open LDAP Public License v1.3 OLDAP-1.3 License Text +Open LDAP Public License v1.4 OLDAP-1.4 License Text +Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B) OLDAP-2.0 License Text +Open LDAP Public License v2.0.1 OLDAP-2.0.1 License Text +Open LDAP Public License v2.1 OLDAP-2.1 License Text +Open LDAP Public License v2.2 OLDAP-2.2 License Text +Open LDAP Public License v2.2.1 OLDAP-2.2.1 License Text +Open LDAP Public License 2.2.2 OLDAP-2.2.2 License Text +Open LDAP Public License v2.3 OLDAP-2.3 Y License Text +Open LDAP Public License v2.4 OLDAP-2.4 License Text +Open LDAP Public License v2.5 OLDAP-2.5 License Text +Open LDAP Public License v2.6 OLDAP-2.6 License Text +Open LDAP Public License v2.7 OLDAP-2.7 Y License Text +Open LDAP Public License v2.8 OLDAP-2.8 License Text +Open Market License OML License Text +OpenSSL License OpenSSL Y License Text +Open Public License v1.0 OPL-1.0 License Text +OSET Public License version 2.1 OSET-PL-2.1 Y License Text +Open Software License 1.0 OSL-1.0 Y Y License Text +Open Software License 1.1 OSL-1.1 Y License Text +Open Software License 2.0 OSL-2.0 Y Y License Text +Open Software License 2.1 OSL-2.1 Y Y License Text +Open Software License 3.0 OSL-3.0 Y Y License Text +The Parity Public License 6.0.0 Parity-6.0.0 License Text +The Parity Public License 7.0.0 Parity-7.0.0 License Text +ODC Public Domain Dedication & License 1.0 PDDL-1.0 License Text +PHP License v3.0 PHP-3.0 Y License Text +PHP License v3.01 PHP-3.01 Y Y License Text +Plexus Classworlds License Plexus License Text +PolyForm Noncommercial License 1.0.0 PolyForm-Noncommercial-1.0.0 License Text +PolyForm Small Business License 1.0.0 PolyForm-Small-Business-1.0.0 License Text +PostgreSQL License PostgreSQL Y License Text +Python Software Foundation License 2.0 PSF-2.0 License Text +psfrag License psfrag License Text +psutils License psutils License Text +Python License 2.0 Python-2.0 Y Y License Text +Qhull License Qhull License Text +Q Public License 1.0 QPL-1.0 Y Y License Text +Rdisc License Rdisc License Text +Red Hat eCos Public License v1.1 RHeCos-1.1 License Text +Reciprocal Public License 1.1 RPL-1.1 Y License Text +Reciprocal Public License 1.5 RPL-1.5 Y License Text +RealNetworks Public Source License v1.0 RPSL-1.0 Y Y License Text +RSA Message-Digest License RSA-MD License Text +Ricoh Source Code Public License RSCPL Y License Text +Ruby License Ruby Y License Text +Sax Public Domain Notice SAX-PD License Text +Saxpath License Saxpath License Text +SCEA Shared Source License SCEA License Text +Sendmail License Sendmail License Text +Sendmail License 8.23 Sendmail-8.23 License Text +SGI Free Software License B v1.0 SGI-B-1.0 License Text +SGI Free Software License B v1.1 SGI-B-1.1 License Text +SGI Free Software License B v2.0 SGI-B-2.0 Y License Text +Solderpad Hardware License v0.5 SHL-0.5 License Text +Solderpad Hardware License, Version 0.51 SHL-0.51 License Text +Simple Public License 2.0 SimPL-2.0 Y License Text +Sun Industry Standards Source License v1.1 SISSL Y Y License Text +Sun Industry Standards Source License v1.2 SISSL-1.2 License Text +Sleepycat License Sleepycat Y Y License Text +Standard ML of New Jersey License SMLNJ Y License Text +Secure Messaging Protocol Public License SMPPL License Text +SNIA Public License 1.1 SNIA License Text +Spencer License 86 Spencer-86 License Text +Spencer License 94 Spencer-94 License Text +Spencer License 99 Spencer-99 License Text +Sun Public License v1.0 SPL-1.0 Y Y License Text +SSH OpenSSH license SSH-OpenSSH License Text +SSH short notice SSH-short License Text +Server Side Public License, v 1 SSPL-1.0 License Text +SugarCRM Public License v1.1.3 SugarCRM-1.1.3 License Text +Scheme Widget Library (SWL) Software License Agreement SWL License Text +TAPR Open Hardware License v1.0 TAPR-OHL-1.0 License Text +TCL/TK License TCL License Text +TCP Wrappers License TCP-wrappers License Text +TMate Open Source License TMate License Text +TORQUE v2.5+ Software License v1.1 TORQUE-1.1 License Text +Trusster Open Source License TOSL License Text +Technische Universitaet Berlin License 1.0 TU-Berlin-1.0 License Text +Technische Universitaet Berlin License 2.0 TU-Berlin-2.0 License Text +Upstream Compatibility License v1.0 UCL-1.0 Y License Text +Unicode License Agreement - Data Files and Software (2015) Unicode-DFS-2015 License Text +Unicode License Agreement - Data Files and Software (2016) Unicode-DFS-2016 License Text +Unicode Terms of Use Unicode-TOU License Text +The Unlicense Unlicense Y Y License Text +Universal Permissive License v1.0 UPL-1.0 Y Y License Text +Vim License Vim Y License Text +VOSTROM Public License for Open Source VOSTROM License Text +Vovida Software License v1.0 VSL-1.0 Y License Text +W3C Software Notice and License (2002-12-31) W3C Y Y License Text +W3C Software Notice and License (1998-07-20) W3C-19980720 License Text +W3C Software Notice and Document License (2015-05-13) W3C-20150513 License Text +Sybase Open Watcom Public License 1.0 Watcom-1.0 Y License Text +Wsuipa License Wsuipa License Text +Do What The F*ck You Want To Public License WTFPL Y License Text +X11 License X11 Y License Text +Xerox License Xerox License Text +XFree86 License 1.1 XFree86-1.1 Y License Text +xinetd License xinetd Y License Text +X.Net License Xnet Y License Text +XPP License xpp License Text +XSkat License XSkat License Text +Yahoo! Public License v1.0 YPL-1.0 License Text +Yahoo! Public License v1.1 YPL-1.1 Y License Text +Zed License Zed License Text +Zend License v2.0 Zend-2.0 Y License Text +Zimbra Public License v1.3 Zimbra-1.3 Y License Text +Zimbra Public License v1.4 Zimbra-1.4 License Text +zlib License Zlib Y Y License Text +zlib/libpng License with Acknowledgement zlib-acknowledgement License Text +Zope Public License 1.1 ZPL-1.1 License Text +Zope Public License 2.0 ZPL-2.0 Y Y License Text +Zope Public License 2.1 ZPL-2.1 Y License Text diff --git a/src/catkin_pkg/package.py b/src/catkin_pkg/package.py index bdc88a3b..737bbead 100644 --- a/src/catkin_pkg/package.py +++ b/src/catkin_pkg/package.py @@ -222,6 +222,85 @@ def validate(self, warnings=None): errors = [] new_warnings = [] + def is_valid_spdx_identifier(lic): + """ + Checks if the license is already one of valid SPDX Identifiers. + + The list was created from https://spdx.org/licenses/ with: + cat doc/spdx-3.10-2020-08-03.csv | cut -f 2 | grep -v ^Identifier$ + """ + return lic in ['0BSD', 'AAL', 'Abstyles', 'Adobe-2006', 'Adobe-Glyph', 'ADSL', 'AFL-1.1', 'AFL-1.2', 'AFL-2.0', 'AFL-2.1', 'AFL-3.0', 'Afmparse', 'AGPL-1.0-only', 'AGPL-1.0-or-later', + 'AGPL-3.0-only', 'AGPL-3.0-or-later', 'Aladdin', 'AMDPLPA', 'AML', 'AMPAS', 'ANTLR-PD', 'Apache-1.0', 'Apache-1.1', 'Apache-2.0', 'APAFML', 'APL-1.0', 'APSL-1.0', + 'APSL-1.1', 'APSL-1.2', 'APSL-2.0', 'Artistic-1.0', 'Artistic-1.0-cl8', 'Artistic-1.0-Perl', 'Artistic-2.0', 'Bahyph', 'Barr', 'Beerware', 'BitTorrent-1.0', + 'BitTorrent-1.1', 'blessing', 'BlueOak-1.0.0', 'Borceux', 'BSD-1-Clause', 'BSD-2-Clause', 'BSD-2-Clause-Patent', 'BSD-2-Clause-Views', 'BSD-3-Clause', + 'BSD-3-Clause-Attribution', 'BSD-3-Clause-Clear', 'BSD-3-Clause-LBNL', 'BSD-3-Clause-No-Nuclear-License', 'BSD-3-Clause-No-Nuclear-License-2014', + 'BSD-3-Clause-No-Nuclear-Warranty', 'BSD-3-Clause-Open-MPI', 'BSD-4-Clause', 'BSD-4-Clause-UC', 'BSD-Protection', 'BSD-Source-Code', 'BSL-1.0', 'bzip2-1.0.5', + 'bzip2-1.0.6', 'CAL-1.0', 'CAL-1.0-Combined-Work-Exception', 'Caldera', 'CATOSL-1.1', 'CC-BY-1.0', 'CC-BY-2.0', 'CC-BY-2.5', 'CC-BY-3.0', 'CC-BY-3.0-AT', 'CC-BY-4.0', + 'CC-BY-NC-1.0', 'CC-BY-NC-2.0', 'CC-BY-NC-2.5', 'CC-BY-NC-3.0', 'CC-BY-NC-4.0', 'CC-BY-NC-ND-1.0', 'CC-BY-NC-ND-2.0', 'CC-BY-NC-ND-2.5', 'CC-BY-NC-ND-3.0', + 'CC-BY-NC-ND-3.0-IGO', 'CC-BY-NC-ND-4.0', 'CC-BY-NC-SA-1.0', 'CC-BY-NC-SA-2.0', 'CC-BY-NC-SA-2.5', 'CC-BY-NC-SA-3.0', 'CC-BY-NC-SA-4.0', 'CC-BY-ND-1.0', 'CC-BY-ND-2.0', + 'CC-BY-ND-2.5', 'CC-BY-ND-3.0', 'CC-BY-ND-4.0', 'CC-BY-SA-1.0', 'CC-BY-SA-2.0', 'CC-BY-SA-2.5', 'CC-BY-SA-3.0', 'CC-BY-SA-3.0-AT', 'CC-BY-SA-4.0', 'CC-PDDC', 'CC0-1.0', + 'CDDL-1.0', 'CDDL-1.1', 'CDLA-Permissive-1.0', 'CDLA-Sharing-1.0', 'CECILL-1.0', 'CECILL-1.1', 'CECILL-2.0', 'CECILL-2.1', 'CECILL-B', 'CECILL-C', 'CERN-OHL-1.1', + 'CERN-OHL-1.2', 'CERN-OHL-P-2.0', 'CERN-OHL-S-2.0', 'CERN-OHL-W-2.0', 'ClArtistic', 'CNRI-Jython', 'CNRI-Python', 'CNRI-Python-GPL-Compatible', 'Condor-1.1', + 'copyleft-next-0.3.0', 'copyleft-next-0.3.1', 'CPAL-1.0', 'CPL-1.0', 'CPOL-1.02', 'Crossword', 'CrystalStacker', 'CUA-OPL-1.0', 'Cube', 'curl', 'D-FSL-1.0', 'diffmark', + 'DOC', 'Dotseqn', 'DSDP', 'dvipdfm', 'ECL-1.0', 'ECL-2.0', 'EFL-1.0', 'EFL-2.0', 'eGenix', 'Entessa', 'EPICS', 'EPL-1.0', 'EPL-2.0', 'ErlPL-1.1', 'etalab-2.0', + 'EUDatagrid', 'EUPL-1.0', 'EUPL-1.1', 'EUPL-1.2', 'Eurosym', 'Fair', 'Frameworx-1.0', 'FreeImage', 'FSFAP', 'FSFUL', 'FSFULLR', 'FTL', 'GFDL-1.1-invariants-only', + 'GFDL-1.1-invariants-or-later', 'GFDL-1.1-no-invariants-only', 'GFDL-1.1-no-invariants-or-later', 'GFDL-1.1-only', 'GFDL-1.1-or-later', 'GFDL-1.2-invariants-only', + 'GFDL-1.2-invariants-or-later', 'GFDL-1.2-no-invariants-only', 'GFDL-1.2-no-invariants-or-later', 'GFDL-1.2-only', 'GFDL-1.2-or-later', 'GFDL-1.3-invariants-only', + 'GFDL-1.3-invariants-or-later', 'GFDL-1.3-no-invariants-only', 'GFDL-1.3-no-invariants-or-later', 'GFDL-1.3-only', 'GFDL-1.3-or-later', 'Giftware', 'GL2PS', 'Glide', + 'Glulxe', 'GLWTPL', 'gnuplot', 'GPL-1.0-only', 'GPL-1.0-or-later', 'GPL-2.0-only', 'GPL-2.0-or-later', 'GPL-3.0-only', 'GPL-3.0-or-later', 'gSOAP-1.3b', 'HaskellReport', + 'Hippocratic-2.1', 'HPND', 'HPND-sell-variant', 'IBM-pibs', 'ICU', 'IJG', 'ImageMagick', 'iMatix', 'Imlib2', 'Info-ZIP', 'Intel', 'Intel-ACPI', 'Interbase-1.0', 'IPA', + 'IPL-1.0', 'ISC', 'JasPer-2.0', 'JPNIC', 'JSON', 'LAL-1.2', 'LAL-1.3', 'Latex2e', 'Leptonica', 'LGPL-2.0-only', 'LGPL-2.0-or-later', 'LGPL-2.1-only', 'LGPL-2.1-or-later', + 'LGPL-3.0-only', 'LGPL-3.0-or-later', 'LGPLLR', 'Libpng', 'libpng-2.0', 'libselinux-1.0', 'libtiff', 'LiLiQ-P-1.1', 'LiLiQ-R-1.1', 'LiLiQ-Rplus-1.1', 'Linux-OpenIB', + 'LPL-1.0', 'LPL-1.02', 'LPPL-1.0', 'LPPL-1.1', 'LPPL-1.2', 'LPPL-1.3a', 'LPPL-1.3c', 'MakeIndex', 'MirOS', 'MIT', 'MIT-0', 'MIT-advertising', 'MIT-CMU', 'MIT-enna', + 'MIT-feh', 'MITNFA', 'Motosoto', 'mpich2', 'MPL-1.0', 'MPL-1.1', 'MPL-2.0', 'MPL-2.0-no-copyleft-exception', 'MS-PL', 'MS-RL', 'MTLL', 'MulanPSL-1.0', 'MulanPSL-2.0', + 'Multics', 'Mup', 'NASA-1.3', 'Naumen', 'NBPL-1.0', 'NCGL-UK-2.0', 'NCSA', 'Net-SNMP', 'NetCDF', 'Newsletr', 'NGPL', 'NIST-PD', 'NIST-PD-fallback', 'NLOD-1.0', 'NLPL', + 'Nokia', 'NOSL', 'Noweb', 'NPL-1.0', 'NPL-1.1', 'NPOSL-3.0', 'NRL', 'NTP', 'NTP-0', 'O-UDA-1.0', 'OCCT-PL', 'OCLC-2.0', 'ODbL-1.0', 'ODC-By-1.0', 'OFL-1.0', + 'OFL-1.0-no-RFN', 'OFL-1.0-RFN', 'OFL-1.1', 'OFL-1.1-no-RFN', 'OFL-1.1-RFN', 'OGC-1.0', 'OGL-Canada-2.0', 'OGL-UK-1.0', 'OGL-UK-2.0', 'OGL-UK-3.0', 'OGTSL', 'OLDAP-1.1', + 'OLDAP-1.2', 'OLDAP-1.3', 'OLDAP-1.4', 'OLDAP-2.0', 'OLDAP-2.0.1', 'OLDAP-2.1', 'OLDAP-2.2', 'OLDAP-2.2.1', 'OLDAP-2.2.2', 'OLDAP-2.3', 'OLDAP-2.4', 'OLDAP-2.5', + 'OLDAP-2.6', 'OLDAP-2.7', 'OLDAP-2.8', 'OML', 'OpenSSL', 'OPL-1.0', 'OSET-PL-2.1', 'OSL-1.0', 'OSL-1.1', 'OSL-2.0', 'OSL-2.1', 'OSL-3.0', 'Parity-6.0.0', 'Parity-7.0.0', + 'PDDL-1.0', 'PHP-3.0', 'PHP-3.01', 'Plexus', 'PolyForm-Noncommercial-1.0.0', 'PolyForm-Small-Business-1.0.0', 'PostgreSQL', 'PSF-2.0', 'psfrag', 'psutils', 'Python-2.0', + 'Qhull', 'QPL-1.0', 'Rdisc', 'RHeCos-1.1', 'RPL-1.1', 'RPL-1.5', 'RPSL-1.0', 'RSA-MD', 'RSCPL', 'Ruby', 'SAX-PD', 'Saxpath', 'SCEA', 'Sendmail', 'Sendmail-8.23', + 'SGI-B-1.0', 'SGI-B-1.1', 'SGI-B-2.0', 'SHL-0.5', 'SHL-0.51', 'SimPL-2.0', 'SISSL', 'SISSL-1.2', 'Sleepycat', 'SMLNJ', 'SMPPL', 'SNIA', 'Spencer-86', 'Spencer-94', + 'Spencer-99', 'SPL-1.0', 'SSH-OpenSSH', 'SSH-short', 'SSPL-1.0', 'SugarCRM-1.1.3', 'SWL', 'TAPR-OHL-1.0', 'TCL', 'TCP-wrappers', 'TMate', 'TORQUE-1.1', 'TOSL', + 'TU-Berlin-1.0', 'TU-Berlin-2.0', 'UCL-1.0', 'Unicode-DFS-2015', 'Unicode-DFS-2016', 'Unicode-TOU', 'Unlicense', 'UPL-1.0', 'Vim', 'VOSTROM', 'VSL-1.0', 'W3C', + 'W3C-19980720', 'W3C-20150513', 'Watcom-1.0', 'Wsuipa', 'WTFPL', 'X11', 'Xerox', 'XFree86-1.1', 'xinetd', 'Xnet', 'xpp', 'XSkat', 'YPL-1.0', 'YPL-1.1', 'Zed', 'Zend-2.0', + 'Zimbra-1.3', 'Zimbra-1.4', 'Zlib', 'zlib-acknowledgement', 'ZPL-1.1', 'ZPL-2.0', 'ZPL-2.1'] + + def map_license_to_spdx(lic): + """ + Map some commonly used license values to one of valid SPDX Identifiers. + + This is mapping only whatever value is listed in package.xml without any + knowledge about the actual license used in the source files - it can map + only the clear unambiguous cases (while triggering an warning) - the rest + needs to be fixed in package.xml, so it will trigger an error + + This is similar to what e.g. Openembedded is doing in: + http://git.openembedded.org/openembedded-core/tree/meta/conf/licenses.conf + """ + return { + 'Apache2': 'Apache-2.0', + }.get(lic, None) + + def validate_licenses(licenses, warnings): + for lic in licenses: + if is_valid_spdx_identifier(lic): + continue + + if lic == 'TODO': + warnings.append('The license value "%s" is only temporary from the template, replace it with correct value' % (lic)) + continue + + spdx = map_license_to_spdx(lic) + if not spdx: + warnings.append('The license value "%s" cannot be mapped to valid SPDX identifier' % (lic)) + elif spdx != lic: + # double check that what we mapped it to, is one of valid SPDX identifiers + if not is_valid_spdx_identifier(spdx): + warnings.append('The license value "%s" was mapped to "%s", but that is not listed as valid identifier' % (lic, spdx)) + else: + warnings.append('The license value "%s" is not valid SPDX identifier, please use "%s" instead' % (lic, spdx)) + if self.package_format: if not re.match('^[1-9][0-9]*$', str(self.package_format)): errors.append('The "format" attribute of the package must contain a positive integer if present') @@ -268,6 +347,8 @@ def validate(self, warnings=None): if [license_ for license_ in self.licenses if not license_.strip()]: errors.append('The license tag must neither be empty nor only contain whitespaces') + validate_licenses(self.licenses, new_warnings) + if self.authors is not None: for author in self.authors: try: