I'm developing a pretty big open-source project which will require multiple technology stacks. My hope is that this project will be primarily community-based, which means the community should be able to contribute and expand on the source publicly or privately (on their own repository/software).
Currently, I have opted for the GPLv3 license since it seems to fit most of the requirements, however, I'm still in doubt about developers being able to use it for their own private, commercial use, and, possibly involve using patents or NDA protected code from other 3rd-parties.
From the GPL FAQ: https://www.gnu.org/licenses/gpl-faq.en.html#GPLRequireSourcePostedPublic
It states that other developers can use it without disclosing their code but must use the GPL license if released publicly (which is fine). But I'm not sure if it means that if using it privately they are bound to using a GPL license which might conflict with the 3rd-parties closed-source licenses.
For example, here is a basic layout of how multiple repositories could possibly link against each other:
ModuleRepo1 (Open Source)
- License: GPLv3
- Dependencies: None
ModuleRepo2 (Open Source)
- License: GPLv3
- Dependencies: ModuleRepo1
3rdPartyRepo (Closed Source)
- License: NDA (Patented)
- Dependencies: Unknown
CustomRepo1 (Closed Source & Commercial Binaries)
License: EULA (Patented)
Dependencies:
ModuleRepo1
ModuleRepo2
3rdPartyRepo
CustomRepo2 (Open Source & Free/Commercial Binaries)
License: EULA
Dependencies:
- ModuleRepo1
- ModuleRepo2
Is the GPLv3 license a good option for these requirements?
And, are there other licenses that could better fit my needs?