Friday, July 15, 2011

Obligations related to open source software licenses

A question that I hear often is whether open source software can be used in a proprietary (closed source) application. The answer is "it depends": it depends on the license of the open source components that you use and how the components are being used in your application.

This question came up again today on the gdal-dev discussion list, and Even Rouault posted an answer that summarizes very well the obligations related to the most common licenses in our field: GPL, LGPL, BSD and MIT/X11.

I reproduce Even's answer here for reference as a starting point for next time someone asks:

... here's my understanding of the obligations of the licences. Take it with a
grain of salt : "I'm not a lawyer".

* If your application links to a GPL library, the whole application, including
your own code, is bound by the GPL. You must include the appropriate copyright
notice for the library and provide the user access to the source code of the GPL
library (including the modifications you may have done) and to the code of your
application too under the terms of the GPL.

* If your application links to a LGPL library, you must include the appropriate
copyright notice for the library and provide the user access to the source code
of the LGPL library (including the modifications you may have done in it). Your
application itself may be released under the terms you like.

* If your application links to a BSD library, well, that's depend of the BSD
licence. There are 2-clause, 3-clause and 4-clause variants of the BSD
licence... If it includes the following clause "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", well just comply with it. Otherwise, if you don't distribute
any source code (and you don't have to), you have nothing to do. In any case,
the licence only covers the library code, not your application.

* The MIT licence is a bit similar, except that, the general understanding is
that it places no obligations if you distribute the library as a binary object.
But I've always found that the term "the Software" in the licence isn't very
explicit if it only covers only the source code or binaries generated from it.
So it might be nice to include the copyright notice somewhere if you distribute
it as a binary. If you distribute it as source code, it's clear that you must
include the copyright notice.

1 comment:

  1. The answer also depends on what you'll be doing with the code. If you are not distributing it outside your company, then you can do as you like, even with gpl code.

    The AGPL wasn't mentionned above: it's the only exception to this rule. AGPL adds a clause to the GPL basically saying that distributing a service across a network counts as distribution. For instance, you can use WordPress GPL code inhouse to your heart's content but if you ever think of distributing that outside, you're going to have to abide by the GPL. If you plan to do the same thing with for example, then you must share your changes since StatusNet is AGPL.