catchorg / Clara

A simple to use, composable, command line parser for C++ 11 and beyond
Boost Software License 1.0
649 stars 67 forks source link

Please provide LICENSE file #24

Closed Mike-Crowe-BrightSign closed 6 years ago

Mike-Crowe-BrightSign commented 7 years ago

I've been trying to work out what license Clara is under. The "single-include" contains license text from clara_textflow.hpp:

// This work is licensed under the BSD 2-Clause license.
// See the accompanying LICENSE file, or the one at https://opensource.org/licenses/BSD-2-Clause

But I can't see a LICENSE file in the repository.

The separate clara.hpp contains no license information at all.

I suspect that Clara is also under the 2-clause BSD license, but I think this needs to be made completely clear.

Thanks.

Mike.

bearcage commented 6 years ago

This'd be helpful for me too — I'd like to contribute more, but it's hard to if I don't know the license I'm doing that under!

It looks like catch is under the boost license and textflow is bsd 2-clause, so I'd guess clara will wind up under one of those two as well, but it'd be great to have that spelled out someplace.

philsquared commented 6 years ago

Yes, it should be BSD-2 0 and I've now pushed a license file. Sorry about that - I don't know how I missed it before!

I'm thinking of either moving Catch2 to BSD-2 as well, or Clara and TextFlow to Boost - so they're all on the same license. It's a bit confusing having them on different licenses (although, my understanding is, as the copyright holder I can relicense in this way).

bearcage commented 6 years ago

Thanks much, I appreciate it!

I'm obviously not a lawyer either, but AIUI that's right -- IIRC you can't revoke the old license for anyone who downloaded it when it was licensed that way, or something along those lines, but afaik you can change it at will going forward.

EDIT: 129e877fe039e5ebdb8002347eb9633936d7b27b introduced the LICENSE file, if anybody's looking for it :-)

Mike-Crowe-BrightSign commented 6 years ago

Thanks for adding the license information.

IANAL, but I believe that if you've accepted any non-trivial contributions to the affected code then you cannot unilaterally switch from BSD-2-clause to BSL-1.0 or vice-versa since each license explicitly states that the text of the license must be preserved. You might be able to put the code under both licenses. Presumably that's already effectively what happens in Catch2, since it is licensed under BSL-1.0 but incorporates code that is under BSD-2-clause.

Of course, if you can get the agreement of all the contributors (i.e. copyright holders) then you can change the license to whatever they agree to. If you can get them to respond then I doubt that this would be particularly difficult since the licenses are so similar. But, if you're going through that upheaval anyway it might be worth considering other licenses with specific trademark and patent wording such as Apache.

But, again, IANAL. I'm sure there are people that have far more expertise in this than I do that you could consult.

philsquared commented 6 years ago

I've gone with the easier option of relicensing Clara (and TextFlow) under Boost. There have been no non-trivial contributions to either (you might argue that @horenmar has made non-trivial contributions to Clara, but he is definitely in agreement - although would be nice if he comment to that effect here so it's on the record :-) ).

Clara is now licensed under the Boost Software License.

horenmar commented 6 years ago

I went through the history since the big 1.0 rewrite and there are only 2 external contributions:

Neither touches the actual implementation of Clara, so it should definitely be OK to relicence it. It could also be argued that both of these count as trivial.

philsquared commented 6 years ago

Thanks @horenmar - yes that was my reading, too - except there were quite a few (albeit infrastructural) commits by yourself - hence wanting your input here :-)

So I'm going to close this now.

philsquared commented 6 years ago

Thanks @ronen - and, for the record, when we say "trivial" we don't mean "inconsequential" :-)

ronen commented 6 years ago

[redoing my comment actually logged in to the correct account]

For the record I agree my contribution was trivial :)

philsquared commented 6 years ago

Don't worry - it all worked out anyway (except now my reply precedes your comment - oh well!)

BMBurstein commented 6 years ago

Same here