Combining GPL and BSD/CeCILL/whatever
I'd like to get some clarifications on how to interpret GPL's
derivations-must-also-be-licensed-under-GPL feature and similar demands in
other licenses. Namely:
If have, say, a BSD-new or CeCILL licensed piece of code that is used in a
GPL'd program by...
1) dynamically linking it into the GPL'd program
2) statically linking into the GPL'd program
3) copying a file from it to the GPL'd program
4) copying an individual, but long, function to the GPL'd program
...how, in each case, must the combination be licensed and how should it be
documented in a package?
My understanding is that the often told "you may relicense BSD-new code under
GPL" doesn't actually mean "you may wipe away the BSD license text and put
GPL in its' place (along with the copyright notices)" but instead "you may
amend the BSD-new license with (e.g.) GPL's extra restrictions, hence, making
it effectively GPL'd"? Also, have I understood correctly, that the package
should contain *both* license texts (or references to them) along with a list
stating which parts fall under which license?
If this is the case, is the licensor still allowed to rip off the BSD'd
part(s) and forget that it was ever in touch with GPL'd stuff? To my eye, GPL
seems to permit this at least in cases 1-3 but what's the usual
interpretation about about case 4?
About "relicensing" BSD'd code, I've also been wondering lately if...
"must retain [...] this list of conditions"
...could be interpreted as "must retain the conditions listed here" instead of
"must retain the exact wording and order of these conditions"? It feels a bit
far-fetched to me to take such liberties, but if it was a valid
interpretation, couldn't the license then actually be *replaced* with GPL (as
it contains all the same conditions)?
PS. This tastes more than a little FAQish, but I haven't managed to find any
really clear answers, only some archived debates that have soon drifted to