I want to take some GPLv2 licensed code written by someone else and add code with a BSD-3-Clause license, originally written by someone else. This BSD-code has been modified by me to add some functionality, where some of it uses the GPLv2-code (by calling its functions). I want to combine them to make a larger program. This program as a whole would have GPLv2 as its license but the BSD licensed source files would keep their BSD license so that people can share them (but not the program as a whole) without the GPLv2 requirements. Is this possible?
GPLv3 allows additional terms to be added, in section 7.
You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:
[List of types of terms one can add]
I want to do something similar but this is not explicitly permitted in GPLv2. My understanding is that you can still do something similar. The closest I have found in the GPLv2 license text is this:
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
but it requires the codes to be "reasonably considered independent and separate works in themselves".
Is it possible to do this even if the added BSD-code is not 100% independent (it requires the GPL-code to work correctly)? It can still be somewhat considered a separate work since it was developed as a separate project, but then modified by me and combined with the GPLv2-code.
If not, does that mean that it is impossible to add any permissive-licensed code to GPLv2-code and keep the permissive permissions for the added code, if it is not 100% independent?
If there is a way, I would like to know how I can interpret the GPLv2 license text that way.
Update: From the GPLv2 FAQ: "But you can give additional permission for the use of your code. You can, if you wish, release your module under a license which is more lax than the GPL but compatible with the GPL." It sounds like I can use "additional permissions" just like in GPLv3. Is this correct? Does it not matter how independent the "module" is?