chiark / gitweb /
regress/r1test: Support a `$debug' prefix variable.
[adns.git] / GPL-vs-LGPL
1               GPL vs LGPL, in the context of adns
2               -----------------------------------
3
4 Several people have asked me to release GNU adns under the GNU Lesser
5 General Public Licence (LGPL, formerly the Library GPL) instead of the
6 `stronger' GPL.  This file is intended to answer most of these
7 questions.  If you still have questions or comments, please mail me at
8 <adns-maint@chiark.greenend.org.uk>.
9
10 Typically there are two or three kinds of situation where people make
11 this request: the first is where another free software project
12 currently using a GPL-incompatible licence, wishes to use adns.  The
13 second case, which often overlaps with the first, is where a free
14 software project is currently using an MIT-like licence or the LGPL
15 and fear `GPL infection'.  The third case is where someone is
16 developing a proprietary program and wishes to make use of adns but
17 doesn't wish to make their program free software
18
19
20 1. GPL-incompatible free software licences
21 ------------------------------------------
22
23 Regrettably, there are a number of free software licences (and
24 semi-free licences) in existence which are not compatible with the
25 GPL.  That is, they impose restrictions which are not present in the
26 GPL, and therefore distributing a whole work which contains both such
27 a program and a GPL'd program is not possible: either the combination
28 would have to be distributed under the GPL (violating the restrictions
29 made by the original author), or under the GPL-incompatible licence
30 (violating the GPL).
31
32 I may be prepared to make exceptions for such a licence.  Please
33 contact me at <adns-maint@chiark.greenend.org.uk> with the full text
34 of the GPL-incompatible licence.  However, I would usually prefer it
35 if you could use a GPL-compatible licence for your project instead.
36
37 I have already issued some waivers for certain projects.  These are
38 reproduced in LICENCE.WAIVERS.
39
40
41 2. GPL-avoiding projects (MIT licence, et al)
42 ---------------------------------------------
43
44 Some free software projects prefer to avoid the GPL and other licences
45 which force the software always to be free.  Instead they use
46 something like the MIT X licence, which allows proprietary versions of
47 their software, or the in the case of some free libraries, the LGPL,
48 which allows proprietary applications.  I have to say that I think
49 these people are misguided, but that doesn't mean that they don't have
50 a perfect right to do that.
51
52 Some of these people think that merely writing to an interface
53 provided by GPL'd software will cause their program to become GPL'd
54 too, even if they don't distribute the GPL'd software.  I don't think
55 this is the case.  I'm perfectly happy for non-GPL'd but
56 GPL-compatible software to refer to adns in its source code.  However,
57 I think that exectuables (or compiled libraries) which contain or are
58 dynamically linked against adns must be GPL'd; likewise executable
59 programs (whether compiled or in an interpreted language) which
60 require utilities from adns to function properly must be GPL'd.
61
62 So, you can distribute your non-GPL'd program source which needs adns
63 to compile (provided it's under a GPL-compatible licence), but people
64 who wish to distribute binaries must do so under the terms of the GNU
65 GPL.  This may make sense for some GPL-avoiding free software
66 projects; people can still make proprietary programs from your code,
67 provided that they make some provision to replace adns with something
68 whose copyright allows proprietary versions.
69
70 However, this doesn't make much sense for the authors of LGPL'd
71 libraries.  All I can say to them is to ask which is more important:
72 that their library be well-constructed and use all the best technology
73 available as free software, or whether it is worth degrading quality
74 of their library in order to allow proprietary programs to use it !
75
76 To help the case of LGPL'd libraries for which adns is not a vital
77 component - for example, a library which provides access to other
78 libraries so that programs which use it need only use certain parts,
79 I have released adns.h (just the public header file) under the LGPL as
80 well as the GPL.  See the copyright notice in adns.h for details.
81 Note that this will not help you if it adns is essential to the
82 functioning of your library, because all programs using your library
83 must link against both your library and adns and so must be GPL'd.
84
85
86 For some information and views from the Free Software Foundation on
87 free software licensing, visit:
88
89  Various licenses and comments about them
90   at http://www.fsf.org/philosophy/license-list.html
91
92  Why you shouldn't use the Library GPL for your next library
93   at http://www.fsf.org/philosophy/why-not-lgpl.html
94
95
96 3. Proprietary applications of adns
97 -----------------------------------
98
99 This applies to you if you are writing a proprietary program, by which
100 I mean that you will not be distributing source code and not allowing
101 users to modify and share your software; most likely you are doing
102 this for your own (personal or corporate) financial gain.
103
104 In this case the copyleft GPL licence does not meet your needs.
105 Instead, you will need to negotiate a separate proprietary licence for
106 adns.
107
108 The List Price for a proprietary but LGPL-compatible application which
109 uses adns is EUR150,000 per program per 10,000 users or part thereof,
110 of which I will donate 25% to a Free Software organisation of my
111 choice (as recognition for the contributions and help I have received
112 from the Free Software communicy).
113
114 Discounts may be available, particularly if I approve of your product.
115 So, if you are serious about proprietary software, and paying for the
116 software that you use, please contact me to negotiate a good deal.
117
118
119 -- Ian Jackson 22.5.2004
120
121
122 Local variables:
123 mode: text
124 End: