Re: dual licensing (was: Re: [no subject])
On Sat, Nov 05, 2005 at 06:47:03AM +1100, Andrew Donnellan wrote:
> > So if you want, you can use it under the terms of the MIT license.
> > And, if you prefer, you can use it under the terms of the GPL license.
> I mean the *developer* must comply with both licenses, eg if you d/l
> under the GPL and MIT, then the developer must still put the written
> offer for source code and meet all the distribution requirements of
> the GPL, but anyone else can choose between the GPL and the MIT
This is true for any developer who releases under both licenses, but any
developer may release under just one license and then only comply with that one.
In the effort for expanding understanding, here's why that is, by looking at the
way the GPL works...
The GPL has it's legal enforceability from copyright law. GPL'ed software is
copyrighted, which restricts all but the most fringe fair uses to the software.
No user has the right to use or redistribute the software in most ways under
this state of non-license.
The GPL, being a license, also serves as a sort of unsigned contract between the
two parties. The author, by releasing per software under the GPL, offers in
writting to provide certain things to 3rd parties, including source code, which
is what prevents deceptive authors from releasing under the GPL but not
complying with it themselves.
Then the copyright holder provides a license which permits non-exclusive,
royalty-free access to the software under certain conditions. We're all
probobally very familiar with what the GPL provides, so I'll leave it there.
Now, with dual licensing, the copyright holder offers two different licenses.
The purpose of any license is to permit activity which the copyright, by itself,
will not. It cannot legally restrict beyond what copyright already does.
Nothing in the MIT license, using this as an example (there's a number of
proprietary licenses used too, see MySQL or ReiserFS for good examples), says
you must also comply with the GPL license. Nothing in the GPL license says that
you must also comply with the MIT license. Therefore, you have a choice, since
both of these licenses independently grant you access to the code.
If you, as a developer, user, reseller, etc choose to only use one license, that
is your right, as granted by the original copyright holder. When you slap your
copyright on your contributions, assuming you're adding or changing it, you may
choose to only license your changes under the GPL, or under the MIT, as both
permit changes to be added and redistributed.
Now, most dual licensed software requires that, in order for your changes to
make it back into the main distro, you must license under both licenses. Some
also require that you give the copyright of your changes to the original author.
See reiserfsprogs/README for an example of this, where you're allowed not only
to keep your copyright but, if you dual license for commercial/proprietary sale
(ie, company wants to use reiserfs in non-free software) he may cut you a check
for non-trivial contributions.
None of this is required. You can, in the above example of GPL+MIT, release a
fork of the code under the GPL exclusivly (or MIT exclusivly) if the author
won't accept your contribution unless it's also dual licensed. That is, if you
write a really great new optimized search routine for MySQL but you don't want
your additions to be anything but GPL, MySQL won't accept it, but that doesn't
mean you can't offer a fork or patchset for others to use.
Now, having a single software package where two or more different licenses cover
different parts of the code is a different issue, one that was hinted to earlier
on the thread. In this case, those licenses apply only to the parts of the
package which they cover, and this may or may not be in violation of the GPL
depending on how those pieces "fit together". If they're ment to be compiled
into a single binary, or linked against each other, and the licenses aren't
compatable, the maintainer for that package needs to be "schooled".
It's perfectly fine, however, for a library to be released under a BSD license
with an example mini-app which uses the library licensed under the GPL and
documentation licensed under the FDL (or CC Attrib-AsIs or any other combo).
A GPL'ed application can link against BSD-licensed library and the docs, which
are entirely seperate, can be licensed however the author chooses.
A similar situation can arise from patent licenses, which are similar but of an
animal all their own. If the patent license (a license which grants access to
some patented method or procedure) is GPL-incompatable the author must be very
careful that whatever software implements it not be linked directly against
either the GPL or LGPL, as section 7 of the GPL and section 11 of the LGPL would
render such software illegal for 3rd parties to distribute, as enforced by the
copyright holder. While the author perself may not sue someone over this, any
3rd party contributor/copyright-holder who licenses their contribution under the
(L)GPL may, and that's politically bad for all of us.
More than you probobally wanted to know on the subject, but hope it clears up
all the confusion on the issue. :-)
Diversity is the Fuel of Evolution,
Conformity its Starvation.
Be Radical. Be New. Be Different.
Feed Evolution with Everything You Are.