4

As explained on the GNU GPL site, the 4-clause BSD is incompatible with GPL because of the clause 3 which states:

  1. All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the University of California, Berkeley and its contributors.

I can understand the practical problems that arise when software from many contributors is combined (resulting in a very long advertisement message), to the point where Linux Kernel devs may decide not to include such code. But I see no good reason to call it incompatible with the GPL.

On the other hand, comments to this answer gives a very different reason for the incompatibility with GPL:

The BSD license does not give the permission to re-license and for this reason the final user always gets all permissions from the original author who put the file under the BSD license and who would need to give his explicit OK. The BSD license permits to add code under a different license but then you would need to clearly mark every line that is under this different license. Given that the GPL is for complete works only, the GPL would not permit you to put parts of the code under GPL.

If the above is true, 4-clause BSD is indeed incompatible with GPL. But then, removing the clause 3 apparently won't help with GPL compatibility, because the problem is elsewhere.

So, which one is it?

9

The GPL does not normally require licence holders to put any special acknowledgments in their advertising material. GPLv3 s7 says that any of six additional restrictions may be added to the normal requirements of the GPL, and none of these relate to advertising material. It then goes on:

All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term.

So 4-clause BSD requires you to acknowledge a third party in your advertising material, and GPLv3 forbids (or, more accurately, voids) this requirement; hence, incompatibility.

  • 3
    And similarly, the GPLv2 forbids any additional terms: “You may not impose any further restrictions” – amon Mar 7 at 17:35
  • 1
    @amon thank you for that. I hadn't meant to suggest that it didn't, only skipped the issue because there was no evidence that the OP was referring specifically to GPLv2; completeness, however, is always better - so again, thanks! – MadHatter supports Monica Mar 8 at 8:51
4

There's already an answer to the first half of your question. Here's an answer to the second half:

The BSD license does not give the permission to re-license and for this reason the final user always gets all permissions from the original author who put the file under the BSD license

Correct.

and who would need to give his explicit OK.

They already did by offering their work under the BSD license.

The BSD license permits to add code under a different license but then you would need to clearly mark every line that is under this different license.

I don't understand where this claim is coming from. The BSD license doesn't require it. No law requires it as far as I know.

Given that the GPL is for complete works only, the GPL would not permit you to put parts of the code under GPL.

This is a common misunderstanding of clause 2b of GPLv2. Here's the clause that seems to be saying this:

b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any part
thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

Notice two very important details here. First, it doesn't say that you have to license anything. It just says you have to cause the entire work to be licensed. And notice that it doesn't say "under this license" but "under the terms of this license".

To have a license that is under the terms of the GPL, you just have to be able to exercise the rights the GPL gives you subject to the conditions the GPL requires and not violate anyone's copyrights. Since the 3-clause BSD license is a superset of the GPL, if you have a 3-clause BSD license, you have a license under the terms of the GPL (and also some additional things).

To have a license to a work as a whole, you just need a license to all the protectable elements expressed in that work. This is met in the case of a combined work.

By distributing the work to people, you are causing them to receive a BSD license to those protectable elements covered by that license and a GPL license to those protectable elements covered by that license.

There are no other protectable elements, so that is a license to the work as a whole. And it is under the terms of the GPL because you get all the rights the GPL gives you if you comply with only the GPL's restrictions without violating any copyright to any protectable elements in the combined work.

So this is not a relicensing requirement, it's a cause to be licensed requirement. It doesn't require a license under the GPL, just under the terms of the GPL (that is, a compatible license). And there's no special "license to the entire work", an entire work is a collection of protectable elements, each of which you need a license to. There's no extra "complete work license" that you need.

So, going back to "the GPL would not permit you to put parts of the code under GPL." Nothing in the GPL says that and clause 2b is carefully worded to make this work. You can apply clause 2b to any original protectable expression. Clause 2b would, of course, then apply to any work containing that protectable expression unless it was also offered under a different license by its original author or assignee.

  • 2
    I carefully did not touch this part of the original question because as I have said elsewhere I completely disagree with this analysis of the relicensing issue, and by extension Joerg Schilling's comment quoted in the question - so that part seems to me to be founded on a false premiss, and is thus unanswerable. Nevertheless, if you are right about relicensing, then I think you give an excellent answer to the second part of the question. – MadHatter supports Monica Mar 8 at 8:59
  • Do you think that someone other than the holder of a copyright or their assignee can offer people licenses? Or do you think that the BSD license makes you an assignee of or holder of any copyrights to protectable expression you didn't author? Both positions fall apart and you necessarily have to be taking one of them, don't you? – David Schwartz Mar 8 at 17:37
  • 1
    I think if you convey to me something with permission to convey it to other people, and you place no prohibition on my adding constraints when I do, that I may convey it to someone else and add constraints associated with the onward conveyance. That's been well-established in land law, for example, for centuries. That said, I really don't want to have this argument again here; you and I have had it elsewhere, not least in the linked question on law.SE. – MadHatter supports Monica Mar 8 at 20:06
  • 1
    Look, David, it's clearly arguable, as we have argued it before, and are arguing it now. I don't want to do this in your answer's comments field. Feel free to open Yet Another BSD Relicensing Question if you'd like. And by the way, I'm not in the US. – MadHatter supports Monica Mar 8 at 20:27
  • 1
    I repeat: not in your answer's comments field. – MadHatter supports Monica Mar 12 at 15:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.