1{ lib }:
2let
3
4 spdx = lic: lic // {
5 url = "http://spdx.org/licenses/${lic.spdxId}.html";
6 };
7
8in
9
10lib.mapAttrs (n: v: v // { shortName = n; }) rec {
11 /* License identifiers from spdx.org where possible.
12 * If you cannot find your license here, then look for a similar license or
13 * add it to this list. The URL mentioned above is a good source for inspiration.
14 */
15
16 afl21 = spdx {
17 spdxId = "AFL-2.1";
18 fullName = "Academic Free License v2.1";
19 };
20
21 afl3 = spdx {
22 spdxId = "AFL-3.0";
23 fullName = "Academic Free License v3.0";
24 };
25
26 agpl3 = spdx {
27 spdxId = "AGPL-3.0";
28 fullName = "GNU Affero General Public License v3.0";
29 };
30
31 agpl3Plus = {
32 fullName = "GNU Affero General Public License v3.0 or later";
33 inherit (agpl3) url;
34 };
35
36 amazonsl = {
37 fullName = "Amazon Software License";
38 url = http://aws.amazon.com/asl/;
39 free = false;
40 };
41
42 amd = {
43 fullName = "AMD License Agreement";
44 url = http://developer.amd.com/amd-license-agreement/;
45 };
46
47 apsl20 = spdx {
48 spdxId = "APSL-2.0";
49 fullName = "Apple Public Source License 2.0";
50 };
51
52 arphicpl = {
53 fullName = "Arphic Public License";
54 url = https://www.freedesktop.org/wiki/Arphic_Public_License/;
55 };
56
57 artistic1 = spdx {
58 spdxId = "Artistic-1.0";
59 fullName = "Artistic License 1.0";
60 };
61
62 artistic2 = spdx {
63 spdxId = "Artistic-2.0";
64 fullName = "Artistic License 2.0";
65 };
66
67 asl20 = spdx {
68 spdxId = "Apache-2.0";
69 fullName = "Apache License 2.0";
70 };
71
72 boost = spdx {
73 spdxId = "BSL-1.0";
74 fullName = "Boost Software License 1.0";
75 };
76
77 beerware = spdx {
78 spdxId = "Beerware";
79 fullName = ''Beerware License'';
80 };
81
82 bsd0 = spdx {
83 spdxId = "0BSD";
84 fullName = "BSD Zero Clause License";
85 };
86
87 bsd2 = spdx {
88 spdxId = "BSD-2-Clause";
89 fullName = ''BSD 2-clause "Simplified" License'';
90 };
91
92 bsd3 = spdx {
93 spdxId = "BSD-3-Clause";
94 fullName = ''BSD 3-clause "New" or "Revised" License'';
95 };
96
97 bsdOriginal = spdx {
98 spdxId = "BSD-4-Clause";
99 fullName = ''BSD 4-clause "Original" or "Old" License'';
100 };
101
102 clArtistic = spdx {
103 spdxId = "ClArtistic";
104 fullName = "Clarified Artistic License";
105 };
106
107 cc0 = spdx {
108 spdxId = "CC0-1.0";
109 fullName = "Creative Commons Zero v1.0 Universal";
110 };
111
112 cc-by-nc-sa-20 = spdx {
113 spdxId = "CC-BY-NC-SA-2.0";
114 fullName = "Creative Commons Attribution Non Commercial Share Alike 2.0";
115 };
116
117 cc-by-nc-sa-25 = spdx {
118 spdxId = "CC-BY-NC-SA-2.5";
119 fullName = "Creative Commons Attribution Non Commercial Share Alike 2.5";
120 };
121
122 cc-by-nc-sa-30 = spdx {
123 spdxId = "CC-BY-NC-SA-3.0";
124 fullName = "Creative Commons Attribution Non Commercial Share Alike 3.0";
125 };
126
127 cc-by-nc-sa-40 = spdx {
128 spdxId = "CC-BY-NC-SA-4.0";
129 fullName = "Creative Commons Attribution Non Commercial Share Alike 4.0";
130 };
131
132 cc-by-nd-30 = spdx {
133 spdxId = "CC-BY-ND-3.0";
134 fullName = "Creative Commons Attribution-No Derivative Works v3.00";
135 };
136
137 cc-by-sa-25 = spdx {
138 spdxId = "CC-BY-SA-2.5";
139 fullName = "Creative Commons Attribution Share Alike 2.5";
140 };
141
142 cc-by-30 = spdx {
143 spdxId = "CC-BY-3.0";
144 fullName = "Creative Commons Attribution 3.0";
145 };
146
147 cc-by-sa-30 = spdx {
148 spdxId = "CC-BY-SA-3.0";
149 fullName = "Creative Commons Attribution Share Alike 3.0";
150 };
151
152 cc-by-40 = spdx {
153 spdxId = "CC-BY-4.0";
154 fullName = "Creative Commons Attribution 4.0";
155 };
156
157 cc-by-sa-40 = spdx {
158 spdxId = "CC-BY-SA-4.0";
159 fullName = "Creative Commons Attribution Share Alike 4.0";
160 };
161
162 cddl = spdx {
163 spdxId = "CDDL-1.0";
164 fullName = "Common Development and Distribution License 1.0";
165 };
166
167 cecill20 = spdx {
168 spdxId = "CECILL-2.0";
169 fullName = "CeCILL Free Software License Agreement v2.0";
170 };
171
172 cecill-b = spdx {
173 spdxId = "CECILL-B";
174 fullName = "CeCILL-B Free Software License Agreement";
175 };
176
177 cecill-c = spdx {
178 spdxId = "CECILL-C";
179 fullName = "CeCILL-C Free Software License Agreement";
180 };
181
182 cpl10 = spdx {
183 spdxId = "CPL-1.0";
184 fullName = "Common Public License 1.0";
185 };
186
187 doc = spdx {
188 spdxId = "DOC";
189 fullName = "DOC License";
190 };
191
192 eapl = {
193 fullName = "EPSON AVASYS PUBLIC LICENSE";
194 url = http://avasys.jp/hp/menu000000700/hpg000000603.htm;
195 free = false;
196 };
197
198 efl10 = spdx {
199 spdxId = "EFL-1.0";
200 fullName = "Eiffel Forum License v1.0";
201 };
202
203 efl20 = spdx {
204 spdxId = "EFL-2.0";
205 fullName = "Eiffel Forum License v2.0";
206 };
207
208 epl10 = spdx {
209 spdxId = "EPL-1.0";
210 fullName = "Eclipse Public License 1.0";
211 };
212
213 epl20 = spdx {
214 spdxId = "EPL-2.0";
215 fullName = "Eclipse Public License 2.0";
216 };
217
218 epson = {
219 fullName = "Seiko Epson Corporation Software License Agreement for Linux";
220 url = https://download.ebz.epson.net/dsc/du/02/eula/global/LINUX_EN.html;
221 free = false;
222 };
223
224 eupl11 = spdx {
225 spdxId = "EUPL-1.1";
226 fullName = "European Union Public License 1.1";
227 };
228
229 fdl12 = spdx {
230 spdxId = "GFDL-1.2";
231 fullName = "GNU Free Documentation License v1.2";
232 };
233
234 fdl13 = spdx {
235 spdxId = "GFDL-1.3";
236 fullName = "GNU Free Documentation License v1.3";
237 };
238
239 ffsl = {
240 fullName = "Floodgap Free Software License";
241 url = http://www.floodgap.com/software/ffsl/license.html;
242 free = false;
243 };
244
245 free = {
246 fullName = "Unspecified free software license";
247 };
248
249 g4sl = {
250 fullName = "Geant4 Software License";
251 url = https://geant4.web.cern.ch/geant4/license/LICENSE.html;
252 };
253
254 geogebra = {
255 fullName = "GeoGebra Non-Commercial License Agreement";
256 url = https://www.geogebra.org/license;
257 free = false;
258 };
259
260 gpl1 = spdx {
261 spdxId = "GPL-1.0";
262 fullName = "GNU General Public License v1.0 only";
263 };
264
265 gpl1Plus = spdx {
266 spdxId = "GPL-1.0+";
267 fullName = "GNU General Public License v1.0 or later";
268 };
269
270 gpl2 = spdx {
271 spdxId = "GPL-2.0";
272 fullName = "GNU General Public License v2.0 only";
273 };
274
275 gpl2ClasspathPlus = {
276 fullName = "GNU General Public License v2.0 or later (with Classpath exception)";
277 url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception;
278 };
279
280 gpl2Oss = {
281 fullName = "GNU General Public License version 2 only (with OSI approved licenses linking exception)";
282 url = http://www.mysql.com/about/legal/licensing/foss-exception;
283 };
284
285 gpl2Plus = spdx {
286 spdxId = "GPL-2.0+";
287 fullName = "GNU General Public License v2.0 or later";
288 };
289
290 gpl3 = spdx {
291 spdxId = "GPL-3.0";
292 fullName = "GNU General Public License v3.0 only";
293 };
294
295 gpl3Plus = spdx {
296 spdxId = "GPL-3.0+";
297 fullName = "GNU General Public License v3.0 or later";
298 };
299
300 gpl3ClasspathPlus = {
301 fullName = "GNU General Public License v3.0 or later (with Classpath exception)";
302 url = https://fedoraproject.org/wiki/Licensing/GPL_Classpath_Exception;
303 };
304
305 hpnd = spdx {
306 spdxId = "HPND";
307 fullName = "Historic Permission Notice and Disclaimer";
308 };
309
310 # Intel's license, seems free
311 iasl = {
312 fullName = "iASL";
313 url = http://www.calculate-linux.org/packages/licenses/iASL;
314 };
315
316 ijg = spdx {
317 spdxId = "IJG";
318 fullName = "Independent JPEG Group License";
319 };
320
321 inria-compcert = {
322 fullName = "INRIA Non-Commercial License Agreement for the CompCert verified compiler";
323 url = "http://compcert.inria.fr/doc/LICENSE";
324 free = false;
325 };
326
327 inria-icesl = {
328 fullName = "INRIA Non-Commercial License Agreement for IceSL";
329 url = "http://shapeforge.loria.fr/icesl/EULA_IceSL_binary.pdf";
330 free = false;
331 };
332
333 ipa = spdx {
334 spdxId = "IPA";
335 fullName = "IPA Font License";
336 };
337
338 ipl10 = spdx {
339 spdxId = "IPL-1.0";
340 fullName = "IBM Public License v1.0";
341 };
342
343 isc = spdx {
344 spdxId = "ISC";
345 fullName = "ISC License";
346 };
347
348 lgpl2 = spdx {
349 spdxId = "LGPL-2.0";
350 fullName = "GNU Library General Public License v2 only";
351 };
352
353 lgpl2Plus = spdx {
354 spdxId = "LGPL-2.0+";
355 fullName = "GNU Library General Public License v2 or later";
356 };
357
358 lgpl21 = spdx {
359 spdxId = "LGPL-2.1";
360 fullName = "GNU Library General Public License v2.1 only";
361 };
362
363 lgpl21Plus = spdx {
364 spdxId = "LGPL-2.1+";
365 fullName = "GNU Library General Public License v2.1 or later";
366 };
367
368 lgpl3 = spdx {
369 spdxId = "LGPL-3.0";
370 fullName = "GNU Lesser General Public License v3.0 only";
371 };
372
373 lgpl3Plus = spdx {
374 spdxId = "LGPL-3.0+";
375 fullName = "GNU Lesser General Public License v3.0 or later";
376 };
377
378 libpng = spdx {
379 spdxId = "Libpng";
380 fullName = "libpng License";
381 };
382
383 libtiff = spdx {
384 spdxId = "libtiff";
385 fullName = "libtiff License";
386 };
387
388 llgpl21 = {
389 fullName = "Lisp LGPL; GNU Lesser General Public License version 2.1 with Franz Inc. preamble for clarification of LGPL terms in context of Lisp";
390 url = http://opensource.franz.com/preamble.html;
391 };
392
393 lppl12 = spdx {
394 spdxId = "LPPL-1.2";
395 fullName = "LaTeX Project Public License v1.2";
396 };
397
398 lppl13c = spdx {
399 spdxId = "LPPL-1.3c";
400 fullName = "LaTeX Project Public License v1.3c";
401 };
402
403 lpl-102 = spdx {
404 spdxId = "LPL-1.02";
405 fullName = "Lucent Public License v1.02";
406 };
407
408 miros = {
409 fullName = "MirOS License";
410 url = https://opensource.org/licenses/MirOS;
411 };
412
413 # spdx.org does not (yet) differentiate between the X11 and Expat versions
414 # for details see http://en.wikipedia.org/wiki/MIT_License#Various_versions
415 mit = spdx {
416 spdxId = "MIT";
417 fullName = "MIT License";
418 };
419
420 mpl10 = spdx {
421 spdxId = "MPL-1.0";
422 fullName = "Mozilla Public License 1.0";
423 };
424
425 mpl11 = spdx {
426 spdxId = "MPL-1.1";
427 fullName = "Mozilla Public License 1.1";
428 };
429
430 mpl20 = spdx {
431 spdxId = "MPL-2.0";
432 fullName = "Mozilla Public License 2.0";
433 };
434
435 mspl = spdx {
436 spdxId = "MS-PL";
437 fullName = "Microsoft Public License";
438 };
439
440 msrla = {
441 fullName = "Microsoft Research License Agreement";
442 url = "http://research.microsoft.com/en-us/projects/pex/msr-la.txt";
443 };
444
445 ncsa = spdx {
446 spdxId = "NCSA";
447 fullName = "University of Illinois/NCSA Open Source License";
448 };
449
450 notion_lgpl = {
451 url = "https://raw.githubusercontent.com/raboof/notion/master/LICENSE";
452 fullName = "Notion modified LGPL";
453 };
454
455 nposl3 = spdx {
456 spdxId = "NPOSL-3.0";
457 fullName = "Non-Profit Open Software License 3.0";
458 };
459
460 ofl = spdx {
461 spdxId = "OFL-1.1";
462 fullName = "SIL Open Font License 1.1";
463 };
464
465 openldap = spdx {
466 spdxId = "OLDAP-2.8";
467 fullName = "Open LDAP Public License v2.8";
468 };
469
470 openssl = spdx {
471 spdxId = "OpenSSL";
472 fullName = "OpenSSL License";
473 };
474
475 osl21 = spdx {
476 spdxId = "OSL-2.1";
477 fullName = "Open Software License 2.1";
478 };
479
480 osl3 = spdx {
481 spdxId = "OSL-3.0";
482 fullName = "Open Software License 3.0";
483 };
484
485 php301 = spdx {
486 spdxId = "PHP-3.01";
487 fullName = "PHP License v3.01";
488 };
489
490 postgresql = spdx {
491 spdxId = "PostgreSQL";
492 fullName = "PostgreSQL License";
493 };
494
495 postman = {
496 fullName = "Postman EULA";
497 url = https://www.getpostman.com/licenses/postman_base_app;
498 free = false;
499 };
500
501 psfl = spdx {
502 spdxId = "Python-2.0";
503 fullName = "Python Software Foundation License version 2";
504 #url = http://docs.python.org/license.html;
505 };
506
507 publicDomain = {
508 fullName = "Public Domain";
509 };
510
511 qpl = spdx {
512 spdxId = "QPL-1.0";
513 fullName = "Q Public License 1.0";
514 };
515
516 qwt = {
517 fullName = "Qwt License, Version 1.0";
518 url = http://qwt.sourceforge.net/qwtlicense.html;
519 };
520
521 ruby = spdx {
522 spdxId = "Ruby";
523 fullName = "Ruby License";
524 };
525
526 sgi-b-20 = spdx {
527 spdxId = "SGI-B-2.0";
528 fullName = "SGI Free Software License B v2.0";
529 };
530
531 sleepycat = spdx {
532 spdxId = "Sleepycat";
533 fullName = "Sleepycat License";
534 };
535
536 smail = {
537 shortName = "smail";
538 fullName = "SMAIL General Public License";
539 url = http://metadata.ftp-master.debian.org/changelogs/main/d/debianutils/debianutils_4.8.1_copyright;
540 };
541
542 tcltk = spdx {
543 spdxId = "TCL";
544 fullName = "TCL/TK License";
545 };
546
547 ufl = {
548 fullName = "Ubuntu Font License 1.0";
549 url = http://font.ubuntu.com/ufl/ubuntu-font-licence-1.0.txt;
550 };
551
552 unfree = {
553 fullName = "Unfree";
554 free = false;
555 };
556
557 unfreeRedistributable = {
558 fullName = "Unfree redistributable";
559 free = false;
560 };
561
562 unfreeRedistributableFirmware = {
563 fullName = "Unfree redistributable firmware";
564 # Note: we currently consider these "free" for inclusion in the
565 # channel and NixOS images.
566 };
567
568 unlicense = spdx {
569 spdxId = "Unlicense";
570 fullName = "The Unlicense";
571 };
572
573 upl = {
574 fullName = "Universal Permissive License";
575 url = "https://oss.oracle.com/licenses/upl/";
576 };
577
578 vim = spdx {
579 spdxId = "Vim";
580 fullName = "Vim License";
581 };
582
583 vsl10 = spdx {
584 spdxId = "VSL-1.0";
585 fullName = "Vovida Software License v1.0";
586 };
587
588 watcom = spdx {
589 spdxId = "Watcom-1.0";
590 fullName = "Sybase Open Watcom Public License 1.0";
591 };
592
593 w3c = spdx {
594 spdxId = "W3C";
595 fullName = "W3C Software Notice and License";
596 };
597
598 wadalab = {
599 fullName = "Wadalab Font License";
600 url = https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab;
601 };
602
603 wtfpl = spdx {
604 spdxId = "WTFPL";
605 fullName = "Do What The F*ck You Want To Public License";
606 };
607
608 wxWindows = spdx {
609 spdxId = "WXwindows";
610 fullName = "wxWindows Library Licence, Version 3.1";
611 };
612
613 zlib = spdx {
614 spdxId = "Zlib";
615 fullName = "zlib License";
616 };
617
618 zpl20 = spdx {
619 spdxId = "ZPL-2.0";
620 fullName = "Zope Public License 2.0";
621 };
622
623 zpl21 = spdx {
624 spdxId = "ZPL-2.1";
625 fullName = "Zope Public License 2.1";
626 };
627}