TL;DR: Basically "Hey, look, I felt your soft A lacked this so I made this Soft B. You can buy it and add it or do whatever you want with it but don't be a dick and give credit where it's due. Also there are a bunch of people who made forks so let them be. They can do whatever they want with them as long as they attribute original authors". What to do? Is there some existing license, CLA or something to do that?
What tools (licenses, agreements) are needed to make a software so that:
- the code is freely available* (something like "open source" but I know there are some technicalities with what "open source" actually means)
- forks can be created under something similar to LGPL-3.0 (must share source and additionally attribute original contributors)
- I can decide to sell my original source to 3rd party without needing to contact the contributors and ask for their permission and without risk of someone declaring suddenly that they don't agree to selling and they want to take down their contributions. Fork owners can decide if they also want this or they want to be more open (contributors won't need to sign CLA).
- When you contribute to my source you will be attributed. This transfers to whatever fork.
- When 3rd party buys it, they can include it in their software hassle-free with no need to reveal their source. They can then do whatever they want with that code, but keep attributions.
- The transition from my hands to 3rd party hands is hassle free.
- forks can live on their own, neither I nor the 3rd party have a right to issue DMCA/C&D for them even after acquiring my original code.
Basically the above things are (imo) the result of making the following scenario legally sound: Soft A owned by big company A, I create Soft B meant to work with Soft A (without breaking their EULA/licensing etc). I can share my source, allow to make forks (they must include attributions though) and contributions, but in the future I can sell my soft B (with contributions) to A so that they can incorporate it hassle free into their codebase (must add attributions) and I can make that decision alone without contributors deciding against it. What they do with their bought source is none of my business. They cannot, however, require existing forks to be taken down.
I was initially thinking about LGPL-3.0 (forks must be open) with contributor license agreement (copyright transfer, like CAA), but I don't know if it's possible to later sell LGPL-3.0 without the need for 3rd party to open their source, or is it possible to sublicense that to them (and how). How to also force the 3rd party to attribute original authors/contributors?
Please don't bash me if the question is stupid, trivial or something, legality in software is a complicated thing and I find it hard wrapping my head around.