2 title: Licensing advisory
7 # How to license the applications you build with GStreamer
9 The licensing of GStreamer is no different from a lot of other libraries
10 out there like GTK+ or glibc: we use the LGPL. What complicates things
11 with regards to GStreamer is its plugin-based design and the heavily
12 patented and proprietary nature of many multimedia codecs. While patents
13 on software are currently only allowed in a small minority of world
14 countries (the US and Australia being the most important of those), the
15 problem is that due to the central place the US hold in the world
16 economy and the computing industry, software patents are hard to ignore
17 wherever you are. Due to this situation, many companies, including major
18 GNU/Linux distributions, get trapped in a situation where they either
19 get bad reviews due to lacking out-of-the-box media playback
20 capabilities (and attempts to educate the reviewers have met with little
21 success so far), or go against their own - and the free software
22 movement's - wish to avoid proprietary software. Due to competitive
23 pressure, most choose to add some support. Doing that through pure free
24 software solutions would have them risk heavy litigation and punishment
25 from patent owners. So when the decision is made to include support for
26 patented codecs, it leaves them the choice of either using special
27 proprietary applications, or try to integrate the support for these
28 codecs through proprietary plugins into the multimedia infrastructure
29 provided by GStreamer. Faced with one of these two evils the GStreamer
30 community of course prefer the second option.
32 The problem which arises is that most free software and open source
33 applications developed use the GPL as their license. While this is
34 generally a good thing, it creates a dilemma for people who want to put
35 together a distribution. The dilemma they face is that if they include
36 proprietary plugins in GStreamer to support patented formats in a way
37 that is legal for them, they do risk running afoul of the GPL license of
38 the applications. We have gotten some conflicting reports from lawyers
39 on whether this is actually a problem, but the official stance of the
40 FSF is that it is a problem. We view the FSF as an authority on this
41 matter, so we are inclined to follow their interpretation of the GPL
44 So what does this mean for you as an application developer? Well, it
45 means you have to make an active decision on whether you want your
46 application to be used together with proprietary plugins or not. What
47 you decide here will also influence the chances of commercial
48 distributions and Unix vendors shipping your application. The GStreamer
49 community suggest you license your software using a license that will
50 allow proprietary plugins to be bundled with GStreamer and your
51 applications, in order to make sure that as many vendors as possible go
52 with GStreamer instead of less free solutions. This in turn we hope and
53 think will let GStreamer be a vehicle for wider use of free formats like
56 If you do decide that you want to allow for non-free plugins to be used
57 with your application you have a variety of choices. One of the simplest
58 is using licenses like LGPL, MPL or BSD for your application instead of
59 the GPL. Or you can add an exception clause to your GPL license stating
60 that you except GStreamer plugins from the obligations of the GPL.
62 A good example of such a GPL exception clause would be, using the Totem
63 video player project as an example: The authors of the Totem video
64 player project hereby grants permission for non-GPL-compatible GStreamer
65 plugins to be used and distributed together with GStreamer and Totem.
66 This permission goes above and beyond the permissions granted by the GPL
67 license Totem is covered by.
69 Our suggestion among these choices is to use the LGPL license, as it is
70 what resembles the GPL most and it makes it a good licensing fit with
71 the major GNU/Linux desktop projects like GNOME and KDE. It also allows
72 you to share code more openly with projects that have compatible
73 licenses. Obviously, pure GPL code without the above-mentioned clause is
74 not usable in your application as such. By choosing the LGPL, there is
75 no need for an exception clause and thus code can be shared more freely.
77 I have above outlined the practical reasons for why the GStreamer
78 community suggests you allow non-free plugins to be used with your
79 applications. We feel that in the multimedia arena, the free software
80 community is still not strong enough to set the agenda and that blocking
81 non-free plugins to be used in our infrastructure hurts us more than it
82 hurts the patent owners and their ilk.
84 This view is not shared by everyone. The Free Software Foundation urges
85 you to use an unmodified GPL for your applications, so as to push back
86 against the temptation to use non-free plug-ins. They say that since not
87 everyone else has the strength to reject them because they are
88 unethical, they ask your help to give them a legal reason to do so.
90 This advisory is part of a bigger advisory with a FAQ which you can find
92 website](http://gstreamer.freedesktop.org/documentation/licensing.html)