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