On Thursday, 17 October 2013 at 12:27:02 UTC, Sönke Ludwig wrote:
Am 17.10.2013 14:13, schrieb ilya-stromberg:
On Thursday, 17 October 2013 at 12:06:49 UTC, Sönke Ludwig
wrote:
If you have per-file differences, then this in fact means
that both
licenses need to be obeyed when using the package. If those
licenses
are incompatible, that's a problem of the package combining
them -
it's basically unusable then. But going a per-file way is
by-far too
detailed. It's hard enough to assure proper per-package
licensing and
keeping license comments up to date, but this will IMO just
result in
chaos.
Also, while GPL 2 and 3 may not be compatible, there are other
licenses which are compatible, but one is not a superset of
the other.
OK, understand your position. May be just provide special
syntax for
this cases, for example:
"license": [{"BSL-1.0", "MIT"}]
It would have to be still valid JSON. So something like
"license": {"or": [{"and": ["BSL-1.0", "MIT]}, "GPL-2.0"]}
would work. But that is hardly more practical than
"license": "BSL-1.0 and MIT or GPL-2.0"
With the advantage of not requiring operator precedence, though.
We can use "or" as default. So, your example:
"license": [{"and": ["BSL-1.0", "MIT]}, "GPL-2.0"]
Yes, the example
"license": "BSL-1.0 and MIT or GPL-2.0"
looks better, but what about more complex cases:
"license": "BSL-1.0 and MIT or GPL-2.0 and BSL-1.0"
What does it mean?