The BSD license says that derivative works may be distributed under the following conditions:
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
(1) Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
(2) Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
(3)The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
The GPL(v2) says
Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
Now, let's say I write software, use some GPL code and some BSD code, and publish the result under the GPL.
According to the GPL, I'm not allowed to have my resultant code require any further conditions than imposed by the GPL. For example, I'm not allowed to charge $1000 for a copy of source code. The thing is that while the BSD seems to be a fairly light license, it does require some things which the GPL doesn't: Clause 1 and 2 require that derivative works have to have an attached BSD license/warranty disclaimer, and 3 requires that I may not use the original author's name to promote my work.
So now my derivative work has to pass on the following requirements to my end-users:
- If they want to redistribute my code, they may do so under the GPL (from the GPL code).
- If they want to redistribute my code, they must put "a bunch of words" and agree not to say that the original BSD authors helped out my code.
How does 1. and 2. work together?
And yes, I've seen Can I take BSD licensed code and distribute it under GPL? , but the FSF definitely holds that the three clause BSD is GPL compatible.
. GPLv3 explicitly solves this problem in Paragraph 7. But GPL2 doesn't contain these clauses there (to the best of my knowledge).