caps: avoid using in-place oprations
[platform/upstream/gstreamer.git] / docs / manual / appendix-licensing.xml
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 an exception 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
63 Totem video player project as an example:
64 The authors of the Totem video player project hereby grants permission 
65 for non-GPL-compatible GStreamer plugins to be used and distributed 
66 together with GStreamer and Totem. This permission goes above and beyond 
67 the permissions granted by the GPL license Totem 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 suggests 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>