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?

Reply via email to