Files
2026-04-19 12:22:11 +02:00

111 lines
2.2 KiB
Nix

{
/**
This should be used when there is a choice of which license expression to use.
This is a disjunctive binary "OR" operator.
# Example
```nix
OR [ lib.licenses.mit lib.licenses.asl20 ]
=> { licenseType = "compound"; operator = "OR"; licenses = [ lib.licenses.mit lib.licenses.asl20 ] };
```
# Type
```
OR :: List -> AttrSet
```
# Arguments
- [licenses] Possible licenses to choose from
*/
OR = licenses: {
licenseType = "compound";
operator = "OR";
inherit licenses;
};
/**
Create a compound licenses where the user needs to follow both licenses,
eqivialent of spdx `and` modifier.
# Example
```nix
AND [ lib.licenses.mit lib.licenses.asl20 ]
=> { licenseType = "compound"; operator = "AND"; licenses = [ lib.licenses.mit lib.licenses.asl20 ] };
```
# Type
```
AND :: List -> AttrSet
```
# Arguments
- [licenses] Licenses required to use
*/
AND = licenses: {
licenseType = "compound";
operator = "AND";
inherit licenses;
};
/**
Create a licenses exception where a license has a license exception,
eqivialent of spdx `with` modifier.
# Example
```nix
WITH lib.licenses.lgpl21Only lib.licenses.ocamlLgplLinkingException
=> { licenseType = "exception"; operator = "WITH"; license = lib.licenses.lgpl21Only; exception = lib.licenses.ocamlLgplLinkingException; };
```
# Type
```
WITH :: AttrSet -> AttrSet -> AttrSet
```
# Arguments
- [license] License to which the exception applies
- [exception] Exception to apply
*/
WITH = license: exception: {
licenseType = "exception";
operator = "WITH";
inherit license exception;
};
/**
Create a licenses which can be upgraded to any later version of itself,
eqivialent of spdx `+` modifier
# Example
```nix
PLUS lib.licenses.eupl11
=> { licenseType = "plus"; operator = "+"; license = lib.licenses.eupl11; };
```
# Type
```
PLUS :: AttrSet -> AttrSet
```
# Arguments
- [license] License to wich apply an exception
*/
PLUS = license: {
licenseType = "plus";
operator = "+";
inherit license;
};
}