Firstly, we will however have to go through our disclaimer:
DISCLAIMER: DPS Computing Limited and its employees and representatives are not lawyers. This advice does not constitute legal advice, which should always be sought from a trained legal professional in your jurisdiction. The information contained here is our honest and professional opinion but we offer no warranty on the accuracy, continued accuracy or warranty of any description whatsoever. If in doubt, always consult your lawyer!
Right, no that we’ve got that out of the way….
Dual licensing is where a piece of software (or other licensed computing material) is released under two licenses – the most common combination is the GNU General Public License (GPL) and the Massachusetts Institute of Technology (MIT) license.
What does this mean?
What this means is that the software is released under both of these licenses simultaneously. Unless otherwise stated, when using this software (source code etc etc) you can choose which one of the two or more licenses you would like to license the software under, therefore, in this case, you only have to abide by the license of your choosing.
Why is this done?
Licensing is sometimes done in this way to reduce restrictions and create greater freedom for the software being licensed. For example, in the case of an GPL/MIT dual licensed piece of software (and source code), if this was just licensed under the GPL then anybody creating derivative works of, or incorporating the source code / functionality of the GPL software into their own commercial software would be obliged to release the source code of the commercial software (and the software itself) under the GPL license allowing free distribution and access to the source code.
Now obviously, this isn’t good if you want to include the said software in a commercial proprietary project! It’s no good if your competitors can just request the source code from you and then copy exactly what you have done!
With a GPL/MIT dual license, in the example above, if you were going to include the software / functionality in your own commercial proprietary program you could (and obviously should!) license it under the MIT license, which has very few restrictions (and is very short and easy to understand) and doesn’t require you to release your source code.
So, why not just license everything with the MIT license then? Well, the reason is that there are open source developers who want to create derivatives that will remain free if someone else decides to make a further derivative of their work. Hence, they would choose the GPL license.
Why is there so much confusion?
Most of the confusion seems to stem from the language used to describe a softwares dual license. Some licenses will state – “dual licensed under the GPL and MIT licenses”, while some will say – “dual licensed under the GPL or MIT licenses”.
Obviously, the latter (“or”) is fairly obvious, however the “and” statement seems a little ambiguous. The general consensus is that whether it says “or” or whether it says “and”, dual licensing – as a term – means that the end user can decide which of the two or more licenses to abide by. They cannot pick bits from one or bits from another – they have to follow at least one license in its entirety.
This understanding of dual licensing is also backed up by the fact that dual licensing is to relieve as many restrictions as possible while still retaining copyright of the software. By picking one ‘copyleft’ license (such as the GPL) and one progressive copyright license (such as MIT) gives the maximum freedom possible to end users without releasing the software into the public domain.
Conclusion
There is obviously a lot of debate on this topic, a quick search of Google reveals thousands of results for forums discussing the issue. However, the general consensus (and logic dictates) that you that dual licensing is an either / or license. However, at the end users discretion, they may decide to stick to both licenses, but this is optional.
However, it must be said, that if you are in any doubt it is best and highly advisable to do all of the following (now is definitely not the time for doing either / or!!):
a) read the websites of the author / software product. Read any information they state about the dual licensing.
b) read the licenses!! If what you are doing complies with both / all of the licenses – there’s no need to worry. Read all the licenses that apply to the software and source code and make sure you understand them. In general, if the option is a GPL/MIT dual license you would usually pick GPL if you want to create an open source derivative – be aware, any derivative made of a GPL software must distribute both the binaries and the source code. If you are thinking along commercial, proprietary or closed source lines, you would pick the MIT license.
c) CONSULT A LEGAL PROFESSIONAL! If you are in any doubt, consult your lawyer.
Here are links to the most widely used MIT license and GPL license – remember though – these may differ from the license of the software you are looking at (there are different versions of both licenses), so ensure you check with the licenses included with the software / source code.
(Image used under the Creative Commons License – Author : cote)
View Comments (4)
Nice disclaimer ;-). So I can't sue you now? ;-)
On a serious note...good article :).
Thanks Ben! And no, you can't! ;).
Thank you, your feedback is very much appreciated :).
I downloaded some JavaScript library that released under GPL/LGPL. And developer who owns that librariy shows licensing detail in his line of code like this.
* @license http://www.opensource.org/licenses/gpl-2.0.php GPLv2
* @license http://www.opensource.org/licenses/lgpl-2.1.php LGPLv2
So do I need to remove line of GPL license from his source code in case I pick LGPL for my commercial software?
If not, how do people know which license I need to abide by?
Hello,
Apologies for my late reply.
Unless otherwise stated (in my non-legal computer professional opinion!) you can choose which one of these licenses to follow: in this case, either the GPLv2 or the LGPLv2. You can pick the one which suits your needs most. In this case, you would remove the line that relates to the license that you do not choose.
However, if the author states that both must stay then both must stay.
I haven't had a read of the GPL/LGPL recently but I believe there is a clause that if it is used in commercial software then you have to publish the source code and allow others to make derivatives? This may impact whether you choose to use it on a commercial project or not. Just something to have a look into if you haven't already.
You are correct though, unless otherwise stated, remove the license that you don't choose :).
Kind regards,
David.