That's an interesting question. Disclaimer: IANAL.
The quoted fragment means the BSD licensed code can be used in a project which is licensed GPL.
On the other hand, you're still the copyright holder of your code. The license of original code cannot be changed without your permission. Also BSD license explicitly requires:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- 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.
Thus BSD license cannot be stripped away from your code.
In order to actually be able to release combined code under GPL other author would have to make "significant contribution" to the code. It's vague what it exactly means, but usually should mean at least adding new significant feature, not just minor patch.
Similar situation: SFLC Completes Review of Atheros Wireless Driver for Linux, Releases Guide for Developers.
Related question on SO: https://stackoverflow.com/questions/821608/relicensing-a-bsd-library
My understanding is that:
- MIT-licensed projects can be used/redistributed in BSD-licensed projects.
True (but unless there are modifications, the users can get it from the sources also.
- BSD-licensed projects can be used/redistributed in MIT-licensed projects.
False MIT license allows for distribution without contribution credits; BSD doesn't.
- The MIT and the BSD 2-clause licenses are essentially identical.
False See above.
- BSD 3-clause = BSD 2-clause + the "no endorsement" clause
True.
- Issuing a dual license allows users to choose from those licenses—not be bound to both.
True.
Similarly, since the MIT and BSD licenses are both "GPL-compatible" and can be redistributed in GPL-licensed projects, then dual-licensing MIT/GPL also seems redundant.
No. Here is a major difference. MIT license and Apache License only requires that you give credit to original copyright holders. If you choose, you can redistribute source; but if you choose you can keep your new derived product without opening code. Hence, it is possible to use code developed under MIT and Apache—under a commercial license.
If you ever use code with GPL-based license and happen to modify it, you must distribute your modified code as well under GPL. In other words, once any GPL codebase is used under a project, and if you want to publish that as a product, it has to be published with the source code and it has to be published under GPL. It cannot ever be a commercial license or closed source, and it cannot be any other license which is less strict than GPL.
An example can take MIT, Apache or BSD license code, modified and distributed under GPL. Once a codebase is distributed as GPL, its further derived versions cannot be distributed under MIT, Apache or BSD license but must be GPL only.
Edit:
An example case of dual license: Suppose Nice Office is released under dual license—MIT and GPL. It has two possibilities. Some people can create NicePro Office, which can be commercial and sell. Whereas some other open source community creates a fork NiceOpen Office. In this case, it can enforce upon GPL distribution (of the original Nice Office as well as NiceOpen Office version) hence if you start with NiceOpen Office, you must comply to GPL only and not MIT license.
The point is in case of dual license the first person who derives a license has a choice. He can choose either way - however, the second person needs to adhere to the choice the first person made. He/She cannot override the original rights of either generation and cannot in any way reduce the obligation of the applicable license.
EDIT 2
Adding an interesting read - GPL and MPL Licenses has a serious conflict. Read this.
Best Answer
I am not a lawyer and this isn't legal advice.
If I really had to do what you're asking, I would release two separate versions, one licensed GPL with the GPL'd component, and one licensed BSD without the GPL'd component. I don't think it would work to have one distribution with both "versions" in it because GPL is triggered by distribution, so since you're distributing something that has a GPL'd component in it, you have to release it under the GPL. This is a case where I'd want to keep it separate to avoid any ambiguity, and your users would like to avoid ambiguity too.
When I was looking at the Qt framework a few years ago, they had dual license options, but from what I remember you had to choose one license or the other, and for some reason they said you weren't allowed to change your mind later (if you started developing your application under the GPL, you weren't then allowed to change to a different license). My memory is vague, but it's an indication that you have to be careful.