lib/licenses.nix: allow choosing license by its shortName

Example: license = licenses."GPL-2.0+";
This comes with some performance cost during eval of licenses.nix,
but that's probably negligible.
This commit is contained in:
Vladimír Čunát 2014-07-30 19:19:56 +02:00
parent 0f2101215d
commit 229e5c41df

View File

@ -4,7 +4,7 @@ let
}; };
in in
rec { let licenses = rec {
/* License identifiers from spdx.org where possible. /* License identifiers from spdx.org where possible.
* If you cannot find your license here, then look for a similar license or * If you cannot find your license here, then look for a similar license or
* add it to this list. The URL mentioned above is a good source for inspiration. * add it to this list. The URL mentioned above is a good source for inspiration.
@ -87,7 +87,7 @@ rec {
fullName = "Eclipse Public License 1.0"; fullName = "Eclipse Public License 1.0";
}; };
free = "free"; free.shortName = "free";
gpl2 = spdx { gpl2 = spdx {
shortName = "GPL-2.0"; shortName = "GPL-2.0";
@ -237,11 +237,11 @@ rec {
url = http://www.tcl.tk/software/tcltk/license.html; url = http://www.tcl.tk/software/tcltk/license.html;
}; };
unfree = "unfree"; unfree.shortName = "unfree";
unfreeRedistributable = "unfree-redistributable"; unfreeRedistributable.shortName = "unfree-redistributable";
unfreeRedistributableFirmware = "unfree-redistributable-firmware"; unfreeRedistributableFirmware.shortName = "unfree-redistributable-firmware";
wadalab = { wadalab = {
shortName = "wadalab"; shortName = "wadalab";
@ -264,5 +264,8 @@ rec {
fullName = "Zope Public License 2.1"; fullName = "Zope Public License 2.1";
}; };
} }; in
# add the same attrmaps, but named by their shortNames (creating e.g. licenses."GPL-2.0+")
with { inherit (import ./attrsets.nix) mapAttrs' nameValuePair; };
licenses // (mapAttrs' (_: value: nameValuePair value.shortName value) licenses)