<chapter id="chapter-licensing">
<title>Licensing advisory</title>
  <sect1 id="section-application-licensing">
  <title>How to license the applications you build with <application>GStreamer</application></title>
<para>
The licensing of GStreamer is no different from a lot of other libraries 
out there like GTK+ or glibc: we use the LGPL. What complicates things 
with regards to GStreamer is its plugin-based design and the heavily 
patented and proprietary nature of many multimedia codecs. While patents 
on software are currently only allowed in a small minority of world 
countries (the US and Australia being the most important of those), the 
problem is that due to the central place the US hold in the world economy 
and the computing industry, software patents are hard to ignore wherever 
you are.

Due to this situation, many companies, including major GNU/Linux 
distributions, get trapped in a situation where they either get bad 
reviews due to lacking out-of-the-box media playback capabilities (and 
attempts to educate the reviewers have met with little success so far), or 
go against their own - and the free software movement's - wish to avoid 
proprietary software. Due to competitive pressure, most choose to add some 
support. Doing that through pure free software solutions would have them 
risk heavy litigation and punishment from patent owners. So when the 
decision is made to include support for patented codecs, it leaves them 
the choice of either using special proprietary applications, or try to 
integrate the support for these codecs through proprietary plugins into 
the multimedia infrastructure provided by GStreamer. Faced with one of 
these two evils the GStreamer community of course prefer the second option.
</para>
<para>
The problem which arises is that most free software and open source 
applications developed use the GPL as their license. While this is 
generally a good thing, it creates a dilemma for people who want to put 
together a distribution. The dilemma they face is that if they include 
proprietary plugins in GStreamer to support patented formats in a way that 
is legal for them, they do risk running afoul of the GPL license of the 
applications. We have gotten some conflicting reports from lawyers on 
whether this is actually a problem, but the official stance of the FSF is 
that it is a problem. We view the FSF as an authority on this matter, so 
we are inclined to follow their interpretation of the GPL license.
</para>
<para>
So what does this mean for you as an application developer? Well, it means 
you have to make an active decision on whether you want your application 
to be used together with proprietary plugins or not. What you decide here 
will also influence the chances of commercial distributions and Unix 
vendors shipping your application. The GStreamer community suggest you 
license your software using a license that will allow proprietary plugins 
to be bundled with GStreamer and your applications, in order to make sure 
that as many vendors as possible go with GStreamer instead of less free 
solutions. This in turn we hope and think will let GStreamer be a vehicle 
for wider use of free formats like the Xiph.org formats.
</para>
<para>
If you do decide that you want to allow for non-free plugins to be used 
with your application you have a variety of choices. One of the simplest 
is using licenses like LGPL, MPL or BSD for your application instead of 
the GPL. Or you can add an exception clause to your GPL license stating 
that you except GStreamer plugins from the obligations of the GPL.
</para>
<para>
A good example of such a GPL exception clause would be, using the
Totem video player project as an example:
The authors of the Totem video player project hereby grants permission 
for non-GPL-compatible GStreamer plugins to be used and distributed 
together with GStreamer and Totem. This permission goes above and beyond 
the permissions granted by the GPL license Totem is covered by.
</para>
<para>
Our suggestion among these choices is to use the LGPL license, as it is 
what resembles the GPL most and it makes it a good licensing fit with the 
major GNU/Linux desktop projects like GNOME and KDE. It also allows you to 
share code more openly with projects that have compatible licenses. 
Obviously, pure GPL code without the above-mentioned clause is not usable 
in your application as such. By choosing the LGPL, there is no need for an 
exception clause and thus code can be shared more freely.
</para>
<para>
I have above outlined the practical reasons for why the GStreamer 
community suggests you allow non-free plugins to be used with your 
applications. We feel that in the multimedia arena, the free software 
community is still not strong enough to set the agenda and that blocking 
non-free plugins to be used in our infrastructure hurts us more than it 
hurts the patent owners and their ilk.
</para>
<para>
This view is not shared by everyone. The Free Software Foundation urges 
you to use an unmodified GPL for your applications, so as to push back 
against the temptation to use non-free plug-ins. They say that since not 
everyone else has the strength to reject them because they are unethical, 
they ask your help to give them a legal reason to do so. 
</para>
<para>
This advisory is part of a bigger advisory with a FAQ which you can find
on the <ulink url="http://gstreamer.freedesktop.org/documentation/licensing.html">GStreamer website</ulink>
</para>


</sect1>

</chapter>
