I'm working on a software project which I intend to release as FOSS in some way. My code includes quite a few header/source files written by others:
- Better Enums
- A slightly modified GSL Lite
- An adaptation of some of GCC 4.9.3's libstdc++ for use in CUDA device-side code (so originally FSF code based on SGI code)
- An implementation of the C++ optional class (for pre-C++14 compilers and libraries)
as well as pieces of code directly lifted or adapted from answers on Stackoverflow.com . The licenses as of now are:
- MIT and MIT-like licenses
- GPL v3
- Boost Software License
- 2-clause BSD License
- Any license restrictions that apply when using code from Stackoverflow
Now, I'm really not sure what license I can release my project under, nor what license I should release it under in these circumstances. My initial wish is for a GPL release, and possibly something less restrictive in the future. My questions are:
- Given the license soup described above, can I even release my code under a single license, or should/must each part of it (mine and everybody else's) have a separate license?
- Among the popular Free/Open Source Software Licenses (keeping this definition intentionally vague), what are the possible ones I could use: 2.1 For the entire project? 2.2 For the code that's just my own (seeing how it needs to be built with the rest of the code, that's not mine)? 2.3 For the code which is a derivation/modification of code with another license?
- How should I proceed if I want to emulate the effect of one of the licenses for the whole project, even if I can't just use it directly?
Notes:
- This question is similar to this one, except I don't want to put my work in the public domain; and it's not just one small piece of code that's not mine; and there are multiple licenses.
- So far I've included attribution via web link for all the SO code, and of course have kept the copyright notices for all of the libs/files I mentioned above.