Key difference between GPL and BSD licenses
For the project, I’m working on, I came over Plupload library, which is dual-licensed on GPL+OEM model. Since paying commercial license (OEM) in this project is not an option, I told my boss, that we can’t use this library, because we’d have to publish all our project’s sources as open source (base GPL licensing requirement).
He told me, that this is not true, because both PHP and Yii, that we use, are licensed in the same model.
I was so sure, that I’m correct, that I immediately made some research and wrote this article as a summary of all my findings. I was more than happy to prove my boss, that he is wrong! :>
If you think similarly to my boss, then you should definitely read this post.
Plupload library, which stands here as a pure example, is dual-licensed on GPL for open source usage and OEM for commercial usage. Both Yii Framework and PHP or, on contrary, licensed under BSD license. Both have nothing to do with either GPL or dual licensing.
The PHP license introduction contains a phrase, that tells you all:
PHP license is a BSD-style license which does not have the “copyleft” restrictions associated with GPL.
That is the key difference. However, if you still don’t get this, let me put that in points:
1. If something is licensed under BSD, you can use it free of charge in both open source and commercial products. You can publish your sources, but you’re not obligated to do so, and once you publish them, they can be licensed under any model you choose. So, fo example — you can decide to publish your sources only as paid ones (living the software or service itself completely free).
2. If something is licensed under GPL, you can use it free of charge in both open source and commercial products, but you must publish your sources. Amen, no exception. If you don’t want to publish your sources, you have only two options. Either you buy a commercial license (only, if product or service is dual-licensed and does allow commercial licenses) or you stop using this product at all. And, if you decide to publish your sources, they must be licensed under GPL itself.
As I just said, there are no exceptions. GPL is quite simple and obvious in that terms. Either you publish your source code as open source under GPL or forget about using particular solution. You, of course, can decide to ignore this regulations, but that’s not a point in this discussion.
If you still don’t get it, here is list of things, you can do with the commercial/OEM license (this example also comes from Plupload website):
- you do not need to contribute back changes to the Open Source community,
- you can remove branding, logos or copyright related texts,
- you are free from any GPLv2 obligations.
By negation, you can evaluate yourself, what you can’t do or what you must do, when using GPL license.
So, once more, for a complete morons and ignorants: if you’re using anything licensed on GPL, you must contribute all your sources back to the open source community! Amen! No exceptions…