3 lib.mapAttrs (lname: lset: let
6 free = true; # Most of our licenses are Free, explicitly declare unfree additions as such!
10 mkLicense = licenseDeclaration: let
11 applyDefaults = license: defaultLicense // license;
14 then license // { url = "https://spdx.org/licenses/${license.spdxId}.html"; }
16 applyRedistributable = license: { redistributable = license.free; } // license;
17 in lib.pipe licenseDeclaration [
23 /* License identifiers from spdx.org where possible.
24 * If you cannot find your license here, then look for a similar license or
25 * add it to this list. The URL mentioned above is a good source for inspiration.
30 fullName = "Abstyles License";
35 fullName = "Academic Free License v2.0";
40 fullName = "Academic Free License v2.1";
45 fullName = "Academic Free License v3.0";
49 spdxId = "AGPL-3.0-only";
50 fullName = "GNU Affero General Public License v3.0 only";
54 spdxId = "AGPL-3.0-or-later";
55 fullName = "GNU Affero General Public License v3.0 or later";
60 fullName = "Aladdin Free Public License";
65 fullName = "Amazon Software License";
66 url = "https://aws.amazon.com/asl/";
71 fullName = "AMD License Agreement";
72 url = "https://developer.amd.com/amd-license-agreement/";
77 fullName = "Alliance for Open Media Patent License 1.0";
78 url = "https://aomedia.org/license/patent-license/";
83 fullName = "Apple Public Source License 1.0";
84 url = "https://web.archive.org/web/20040701000000*/http://www.opensource.apple.com/apsl/1.0.txt";
89 fullName = "Apple Public Source License 2.0";
93 fullName = "Arphic Public License";
94 url = "https://www.freedesktop.org/wiki/Arphic_Public_License/";
98 spdxId = "Artistic-1.0";
99 fullName = "Artistic License 1.0";
103 spdxId = "Artistic-2.0";
104 fullName = "Artistic License 2.0";
108 spdxId = "Apache-2.0";
109 fullName = "Apache License 2.0";
113 spdxId = "Bitstream-Vera";
114 fullName = "Bitstream Vera Font License";
118 url = "https://blitiri.com.ar/p/bola/";
119 fullName = "Buena Onda License Agreement 1.1";
124 fullName = "Boost Software License 1.0";
129 fullName = "Beerware License";
133 spdxId = "BlueOak-1.0.0";
134 fullName = "Blue Oak Model License 1.0.0";
139 fullName = "BSD Zero Clause License";
143 spdxId = "BSD-1-Clause";
144 fullName = "BSD 1-Clause License";
148 spdxId = "BSD-2-Clause";
149 fullName = ''BSD 2-clause "Simplified" License'';
153 spdxId = "BSD-2-Clause-Patent";
154 fullName = "BSD-2-Clause Plus Patent License";
158 spdxId = "BSD-3-Clause";
159 fullName = ''BSD 3-clause "New" or "Revised" License'';
163 spdxId = "BSD-4-Clause";
164 fullName = ''BSD 4-clause "Original" or "Old" License'';
167 bsdOriginalShortened = {
168 spdxId = "BSD-4-Clause-Shortened";
169 fullName = "BSD 4 Clause Shortened";
173 spdxId = "BSD-4-Clause-UC";
174 fullName = "BSD 4-Clause University of California-Specific";
178 spdxId = "BSD-Protection";
179 fullName = "BSD Protection License";
183 fullName = "Business Source License 1.1";
184 url = "https://mariadb.com/bsl11";
189 fullName = "Cryptographic Autonomy License version 1.0 (CAL-1.0)";
190 url = "https://opensource.org/licenses/CAL-1.0";
194 fullName = "Common Attack Pattern Enumeration and Classification";
195 url = "https://capec.mitre.org/about/termsofuse.html";
199 spdxId = "ClArtistic";
200 fullName = "Clarified Artistic License";
205 fullName = "Creative Commons Zero v1.0 Universal";
209 spdxId = "CC-BY-NC-SA-2.0";
210 fullName = "Creative Commons Attribution Non Commercial Share Alike 2.0";
215 spdxId = "CC-BY-NC-SA-2.5";
216 fullName = "Creative Commons Attribution Non Commercial Share Alike 2.5";
221 spdxId = "CC-BY-NC-SA-3.0";
222 fullName = "Creative Commons Attribution Non Commercial Share Alike 3.0";
227 spdxId = "CC-BY-NC-SA-4.0";
228 fullName = "Creative Commons Attribution Non Commercial Share Alike 4.0";
233 spdxId = "CC-BY-NC-3.0";
234 fullName = "Creative Commons Attribution Non Commercial 3.0 Unported";
239 spdxId = "CC-BY-NC-4.0";
240 fullName = "Creative Commons Attribution Non Commercial 4.0 International";
245 spdxId = "CC-BY-ND-3.0";
246 fullName = "Creative Commons Attribution-No Derivative Works v3.00";
251 spdxId = "CC-BY-SA-2.5";
252 fullName = "Creative Commons Attribution Share Alike 2.5";
256 spdxId = "CC-BY-3.0";
257 fullName = "Creative Commons Attribution 3.0";
261 spdxId = "CC-BY-SA-3.0";
262 fullName = "Creative Commons Attribution Share Alike 3.0";
266 spdxId = "CC-BY-4.0";
267 fullName = "Creative Commons Attribution 4.0";
271 spdxId = "CC-BY-SA-4.0";
272 fullName = "Creative Commons Attribution Share Alike 4.0";
277 fullName = "Common Development and Distribution License 1.0";
281 spdxId = "CECILL-2.0";
282 fullName = "CeCILL Free Software License Agreement v2.0";
286 spdxId = "CECILL-2.1";
287 fullName = "CeCILL Free Software License Agreement v2.1";
292 fullName = "CeCILL-B Free Software License Agreement";
297 fullName = "CeCILL-C Free Software License Agreement";
302 fullName = "Common Public Attribution License 1.0";
307 fullName = "Common Public License 1.0";
312 fullName = "curl License";
317 fullName = "DOC License";
322 fullName = "Detection Rule License 1.0";
326 fullName = "EPSON AVASYS PUBLIC LICENSE";
327 url = "https://avasys.jp/hp/menu000000700/hpg000000603.htm";
333 fullName = "Eiffel Forum License v1.0";
338 fullName = "Eiffel Forum License v2.0";
342 fullName = "ELASTIC LICENSE";
343 url = "https://github.com/elastic/elasticsearch/blob/master/licenses/ELASTIC-LICENSE.txt";
349 fullName = "Eclipse Public License 1.0";
354 fullName = "Eclipse Public License 2.0";
358 fullName = "Seiko Epson Corporation Software License Agreement for Linux";
359 url = "https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html";
365 fullName = "European Union Public License 1.1";
370 fullName = "European Union Public License 1.2";
374 spdxId = "GFDL-1.1-only";
375 fullName = "GNU Free Documentation License v1.1 only";
379 spdxId = "GFDL-1.1-or-later";
380 fullName = "GNU Free Documentation License v1.1 or later";
384 spdxId = "GFDL-1.2-only";
385 fullName = "GNU Free Documentation License v1.2 only";
389 spdxId = "GFDL-1.2-or-later";
390 fullName = "GNU Free Documentation License v1.2 or later";
394 spdxId = "GFDL-1.3-only";
395 fullName = "GNU Free Documentation License v1.3 only";
399 spdxId = "GFDL-1.3-or-later";
400 fullName = "GNU Free Documentation License v1.3 or later";
404 fullName = "Floodgap Free Software License";
405 url = "https://www.floodgap.com/software/ffsl/license.html";
410 fullName = "Unspecified free software license";
415 fullName = "Freetype Project License";
419 fullName = "Geant4 Software License";
420 url = "https://geant4.web.cern.ch/geant4/license/LICENSE.html";
424 fullName = "GeoGebra Non-Commercial License Agreement";
425 url = "https://www.geogebra.org/license";
430 fullName = "GeneralUser GS License v2.0";
431 url = "http://www.schristiancollins.com/generaluser.php"; # license included in sources
435 spdxId = "GPL-1.0-only";
436 fullName = "GNU General Public License v1.0 only";
440 spdxId = "GPL-1.0-or-later";
441 fullName = "GNU General Public License v1.0 or later";
445 spdxId = "GPL-2.0-only";
446 fullName = "GNU General Public License v2.0 only";
450 spdxId = "GPL-2.0-with-classpath-exception";
451 fullName = "GNU General Public License v2.0 only (with Classpath exception)";
454 gpl2ClasspathPlus = {
455 fullName = "GNU General Public License v2.0 or later (with Classpath exception)";
456 url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
460 fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)";
461 url = "https://www.mysql.com/about/legal/licensing/foss-exception";
465 spdxId = "GPL-2.0-or-later";
466 fullName = "GNU General Public License v2.0 or later";
470 spdxId = "GPL-3.0-only";
471 fullName = "GNU General Public License v3.0 only";
475 spdxId = "GPL-3.0-or-later";
476 fullName = "GNU General Public License v3.0 or later";
479 gpl3ClasspathPlus = {
480 fullName = "GNU General Public License v3.0 or later (with Classpath exception)";
481 url = "https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception";
486 fullName = "Historic Permission Notice and Disclaimer";
490 fullName = "Historical Permission Notice and Disclaimer - sell variant";
491 spdxId = "HPND-sell-variant";
494 # Intel's license, seems free
497 url = "https://old.calculate-linux.org/packages/licenses/iASL";
502 fullName = "Independent JPEG Group License";
506 fullName = "ImageMagick License";
507 spdxId = "imagemagick";
512 fullName = "Imlib2 License";
516 fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler";
517 url = "https://compcert.org/doc/LICENSE.txt";
522 fullName = "INRIA Non-Commercial License Agreement for IceSL";
523 url = "https://icesl.loria.fr/assets/pdf/EULA_IceSL_binary.pdf";
529 fullName = "IPA Font License";
534 fullName = "IBM Public License v1.0";
539 fullName = "ISC License";
542 # Proprietary binaries; free to redistribute without modification.
544 fullName = "Databricks Proprietary License";
545 url = "https://pypi.org/project/databricks-connect";
550 fullName = "DataBricks eXtensions aka dbx License";
551 url = "https://github.com/databrickslabs/dbx/blob/743b579a4ac44531f764c6e522dbe5a81a7dc0e4/LICENSE";
553 redistributable = false;
557 fullName = "Intel Simplified Software License";
558 url = "https://software.intel.com/en-us/license/intel-simplified-software-license";
564 fullName = "Licence Art Libre 1.2";
569 fullName = "Licence Art Libre 1.3";
573 spdxId = "LGPL-2.0-only";
574 fullName = "GNU Library General Public License v2 only";
578 spdxId = "LGPL-2.0-or-later";
579 fullName = "GNU Library General Public License v2 or later";
583 spdxId = "LGPL-2.1-only";
584 fullName = "GNU Lesser General Public License v2.1 only";
588 spdxId = "LGPL-2.1-or-later";
589 fullName = "GNU Lesser General Public License v2.1 or later";
593 spdxId = "LGPL-3.0-only";
594 fullName = "GNU Lesser General Public License v3.0 only";
598 spdxId = "LGPL-3.0-or-later";
599 fullName = "GNU Lesser General Public License v3.0 or later";
604 fullName = "Lesser General Public License For Linguistic Resources";
609 fullName = "libpng License";
613 spdxId = "libpng-2.0"; # Used since libpng 1.6.36.
614 fullName = "PNG Reference Library version 2";
618 fullName = "libssh2 License";
619 url = "https://www.libssh2.org/license.html";
624 fullName = "libtiff License";
628 fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp";
629 url = "https://opensource.franz.com/preamble.html";
633 spdxId = "LLVM-exception";
634 fullName = "LLVM Exception"; # LLVM exceptions to the Apache 2.0 License
639 fullName = "LaTeX Project Public License v1.2";
643 spdxId = "LPPL-1.3c";
644 fullName = "LaTeX Project Public License v1.3c";
649 fullName = "Lucent Public License v1.02";
653 fullName = "MirOS License";
654 url = "https://opensource.org/licenses/MirOS";
657 # spdx.org does not (yet) differentiate between the X11 and Expat versions
658 # for details see https://en.wikipedia.org/wiki/MIT_License#Various_versions
661 fullName = "MIT License";
663 # https://spdx.org/licenses/MIT-feh.html
666 fullName = "feh License";
670 spdxId = "MIT-advertising";
671 fullName = "Enlightenment License (e16)";
676 fullName = "MIT No Attribution";
681 fullName = "Mozilla Public License 1.0";
686 fullName = "Mozilla Public License 1.1";
691 fullName = "Mozilla Public License 2.0";
696 fullName = "Microsoft Public License";
701 fullName = "NASA Open Source Agreement 1.3";
707 fullName = "University of Illinois/NCSA Open Source License";
711 spdxId = "NPOSL-3.0";
712 fullName = "Non-Profit Open Software License 3.0";
716 fullName = "Obsidian End User Agreement";
717 url = "https://obsidian.md/eula";
722 fullName = "OCamlPro Non Commercial license version 1";
723 url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-2.2.0/OCamlPro-Non-Commercial-License.pdf";
729 fullName = "Open Data Commons Open Database License v1.0";
734 fullName = "SIL Open Font License 1.1";
739 fullName = "Open Market License";
743 spdxId = "OLDAP-2.8";
744 fullName = "Open LDAP Public License v2.8";
749 fullName = "OpenSSL License";
754 fullName = "Open Software License 2.0";
759 fullName = "Open Software License 2.1";
764 fullName = "Open Software License 3.0";
768 spdxId = "Parity-7.0.0";
769 fullName = "Parity Public License 7.0.0";
770 url = "https://paritylicense.com/versions/7.0.0.html";
775 fullName = "PHP License v3.01";
779 spdxId = "PostgreSQL";
780 fullName = "PostgreSQL License";
784 fullName = "Postman EULA";
785 url = "https://www.getpostman.com/licenses/postman_base_app";
790 spdxId = "Python-2.0";
791 fullName = "Python Software Foundation License version 2";
792 url = "https://docs.python.org/license.html";
796 fullName = "Public Domain";
800 fullName = " Purdue BSD-Style License"; # also know as lsof license
801 url = "https://enterprise.dejacode.com/licenses/public/purdue-bsd";
805 fullName = "Prosperity-3.0.0";
807 url = "https://prosperitylicense.com/versions/3.0.0.html";
812 fullName = "Qhull License";
817 fullName = "Q Public License 1.0";
821 fullName = "Qwt License, Version 1.0";
822 url = "https://qwt.sourceforge.io/qwtlicense.html";
827 fullName = "Ruby License";
832 fullName = "Sendmail License";
836 spdxId = "SGI-B-2.0";
837 fullName = "SGI Free Software License B v2.0";
841 spdxId = "Sleepycat";
842 fullName = "Sleepycat License";
847 fullName = "SMAIL General Public License";
848 url = "https://sources.debian.org/copyright/license/debianutils/4.9.1/";
853 fullName = "Server Side Public License";
854 url = "https://www.mongodb.com/licensing/server-side-public-license";
857 # The license a slightly modified AGPL but still considered unfree by the
858 # OSI for what seem like political reasons
859 redistributable = true; # Definitely redistributable though, it's an AGPL derivative
864 fullName = "Synthesis Tool Kit 4.3";
865 url = "https://github.com/thestk/stk/blob/master/LICENSE";
870 fullName = "TCL/TK License";
874 fullName = "Unicode Character Database License";
875 url = "https://fedoraproject.org/wiki/Licensing:UCD";
879 fullName = "Ubuntu Font License 1.0";
880 url = "https://ubuntu.com/legal/font-licence";
888 unfreeRedistributable = {
889 fullName = "Unfree redistributable";
891 redistributable = true;
894 unfreeRedistributableFirmware = {
895 fullName = "Unfree redistributable firmware";
896 redistributable = true;
897 # Note: we currently consider these "free" for inclusion in the
898 # channel and NixOS images.
902 spdxId = "Unicode-DFS-2015";
903 fullName = "Unicode License Agreement - Data Files and Software (2015)";
907 spdxId = "Unicode-DFS-2016";
908 fullName = "Unicode License Agreement - Data Files and Software (2016)";
912 spdxId = "Unlicense";
913 fullName = "The Unlicense";
917 fullName = "Universal Permissive License";
918 url = "https://oss.oracle.com/licenses/upl/";
923 fullName = "Vim License";
927 fullName = "Oracle VM VirtualBox Extension Pack Personal Use and Evaluation License (PUEL)";
928 url = "https://www.virtualbox.org/wiki/VirtualBox_PUEL";
933 fullName = "Volatility Software License, Version 1.0";
934 url = "https://www.volatilityfoundation.org/license/vsl-v1.0";
939 fullName = "Vovida Software License v1.0";
943 spdxId = "Watcom-1.0";
944 fullName = "Sybase Open Watcom Public License 1.0";
949 fullName = "W3C Software Notice and License";
953 fullName = "Wadalab Font License";
954 url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab";
959 fullName = "Do What The F*ck You Want To Public License";
963 spdxId = "wxWindows";
964 fullName = "wxWindows Library Licence, Version 3.1";
969 url = "http://mcj.sourceforge.net/authors.html#xfig"; # https is broken
974 fullName = "zlib License";
979 fullName = "Zope Public License 2.0";
984 fullName = "Zope Public License 2.1";
987 # TODO: remove legacy aliases
990 fullName = "GNU Affero General Public License v3.0";
995 fullName = "GNU Free Documentation License v1.1";
1000 fullName = "GNU Free Documentation License v1.2";
1004 spdxId = "GFDL-1.3";
1005 fullName = "GNU Free Documentation License v1.3";
1010 fullName = "GNU General Public License v2.0";
1015 fullName = "GNU General Public License v3.0";
1019 spdxId = "LGPL-2.0";
1020 fullName = "GNU Library General Public License v2";
1024 spdxId = "LGPL-2.1";
1025 fullName = "GNU Lesser General Public License v2.1";
1029 spdxId = "LGPL-3.0";
1030 fullName = "GNU Lesser General Public License v3.0";