[off topic] Licensing question on MPL

This isn’t an Ada question specifically, but I am evaluating some licenses for my Ada code. I currently have been using GPLv3 with runtime exception, but I do feel it can get a bit murky to explain to folks and I was looking at the MPL 2.0 license and on the surface it looks simpler and it appears to do something I want and that the GPLv3 does not: give me copy left protections at the source file level (vs library level). It lets me enforce that uses of my code (and mods of it) are the only files that require supplying source for in a larger compilation project.

So my question(s): Does anyone have any experience using the MPL 2.0 license and have any experience on it they’d like to share (good, bad, gotchas, etc.)?

I’m just trying to fish out if it is something that I may want to switch to. In general, I like that it is a file based copy left license so it can be used by others and still retains the “supply source” for my contribution without burdening the rest of the projects it may be used in. I like that it seems to have some protections against patent trolling with respect to my code. It is still GPL compatible (at least the version I am looking to use is) so it should interoperate with other Ada code.

If it isn’t a good option, are there any similar file based copy left licenses to look into?

Reference:
https://www.mozilla.org/en-US/MPL/2.0/

I looked into it, but don’t really have any experience. But the major thing MPL 2.0 doesn’t have is the IR clause which the GPL has and it’s a weaker copyleft, iirc.

I’d be interested too.

I use the AGPLv3 for most of my Ada code, and recommend that above anything else. Consider using the LGPLv3 for this purpose. I can’t recommend licenses like the MPL at all.

Can you explain why you don’t recommend the MPL at all?

In brief, it’s one of those weird little licenses and I just wouldn’t bother with it in most cases. I wouldn’t expect others to bother, either.

AdaCore moved some of their libraries to Apache 2.0 and then added LLVM Exceptions. I tend to release my libraries under the same license to keep uniformity.