Those licenses are all a joke. If I need a library like libcurl for a commercial application, then GPL, AGPL, EUPL and even LGPL are non-starter. MPL-style licenses are fine, but it doesn't really make you any money, it just forces me to publish my patchset for the library (except not really [1])
The solution really is to use a serious license. Add a "if you make more than $X you owe us $Y" clause. Or use a Qt-style dual-license, where your users can buy their way out of the GPL, this way you can keep the moral high ground of using a "FSF-approved license". But putting yourself in a position where your work can be easily exploited and then complaining when it is is ridiculous.
[1] MPL works on a per-file basis. Technically I can extend it the library with a new file that contains no MPL code and won't have to release it. The LGPL has protections against this, is worse in other ways.
> But putting yourself in a position where your work can be easily exploited and then complaining when it is is ridiculous.
Ridiculous is a strong adjective to use in this case, naïve would work much better without adding a harsh judgment to people who don't share your worldview. I could say the same: your position is ridiculous by only believing that humans are incapable of cooperation without having something to gain from it, such position only exist due to a system we are beholden to, not due to absolute human nature.
The "Big Tech used my stuff and now I'm sad" story has happened so many times that it is ridiculous. You should be aware of this possibility before releasing your stuff under a permissive license. And the proposed alternative is often copyleft, which doesn't make you any money and dissuades people from using your project. You need to understand these implications before jumping in.
> your position is ridiculous by only believing that humans are incapable of cooperation without having something to gain from it
I do believe that. They're always a motivation to gain something, even if it's the pride that you've helped financially support a project you believe in.
My worldview is irrelevant though, the issue here is corporate structure, not human nature. It's difficult to convince a company to pay for something that is free, especially when the button says "Donate" and not "Buy". And even if you do, for a high-value FOSS component, the amount paid will never reflect the actual value they gained from it - think YouTube and ffmpeg, Apple and FreeBSD, or any SaaS and Linux.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
IANAL, this is just my interpretation.
- There's no way to comply with this when developing for a closed platform - e.g. iOS or any video game console.
- There's no way to comply with this if you need to sign your code for whatever reason.
- It's very difficult to comply with this if you have to ship a single binary and cannot dynamically link - e.g. Android with an .apk package.
MPL and EUPL don't make you money but they are in the spirit of free software while not being viral and forcing everybody to buy into the socialistic ideals of free software.
A company can keep closed source their own extension to your project, but any modification to the project itself gets shared with the community, no exception. In ways it's more libre than GPLv2, without forcing big money to bend to your idealistic will (because they won't, and will just avoid using your software).
Of course you can write your license, but either you do it seriously and pay $x,000 a lawyer to do it for you, or you write legal nonsense. In both cases the result is any company will just skip using your software because they have better things to do than review your custom license. There is a real people choose pre-made licenses for open source.
The solution really is to use a serious license. Add a "if you make more than $X you owe us $Y" clause. Or use a Qt-style dual-license, where your users can buy their way out of the GPL, this way you can keep the moral high ground of using a "FSF-approved license". But putting yourself in a position where your work can be easily exploited and then complaining when it is is ridiculous.
[1] MPL works on a per-file basis. Technically I can extend it the library with a new file that contains no MPL code and won't have to release it. The LGPL has protections against this, is worse in other ways.