chiark / gitweb /
woah, complication
[adns.git] / GPL-vs-LGPL
1 NB that NO VERSIONS of this file from this branch have been released,
2 and I do not intend yet to publish this version.  If you get an old
3 version of this file from my CVS repository definitely do not intend
4 the licence exceptions in it to apply - these too were drafts, as you
5 should know if you know what retreiving old CVS versions means !
6
7   - Ian Jackson, 9th March 2004.
8
9 DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT - DRAFT
10
11               GPL vs LGPL, in the context of adns
12               -----------------------------------
13
14 Several people have asked me to release adns under the GNU Lesser
15 General Public Licence (LGPL, formerly the Library GPL) instead of the
16 `stronger' GPL.  This file is intended to answer most of these
17 questions.  If you still have questions or comments, please mail me at
18 <adns-maint@chiark.greenend.org.uk>.
19
20 Typically there are two or three kinds of situation where people make
21 this request: the first is where someone is developing a proprietary
22 program and wishes to make use of adns but doesn't wish to make their
23 program free software.  The second case is where a free software
24 project is currently using an MIT-like licence and fear `GPL
25 infection'.  The third case, which often overlaps with the second, is
26 where another free software project currently using a GPL-incompatible
27 licence, wishes to use adns.
28
29
30 1. Proprietary applications of adns
31 -----------------------------------
32
33 This section applies if you are developing a proprietary program, by
34 which I mean that you will not be distributing source code and not
35 allowing users to modify and share your software; in most cases you
36 will be doing this for (personal or corporate) financial gain.
37
38 In these cases I may be prepared to issue you a special `LGPL' for
39 adns (ie, allow you to use adns in your application according to the
40 terms of the LGPL).  I will of course expect a significant licensing
41 fee.
42
43 If you are interested I would be happy to negotiate with you.  Please
44 contact me with your serious initial offer, or if alternatively we can
45 first discuss your detailed requirements.
46
47 The fee for proprietary applications of adns without prior approval is
48 US$1,000,000 per annum (or part thereof), per proprietary product, per
49 100,000 installed systems (or part thereof), plus any administration,
50 collection and legal fees required to recover the licence fee.  Of
51 course, this does not apply to commercial Free software applications
52 whose use of adns is compatible with the GNU GPL v2.
53
54
55 2. GPL-avoiding projects (MIT licence, et al)
56 ---------------------------------------------
57
58 Some free software projects prefer to avoid the GPL and other licences
59 which force the software always to be free.  Instead they use
60 something like the MIT X licence, which allows proprietary versions of
61 their software.  I have to say that I don't understand why they do
62 this, and think they are misguided, but that doesn't mean that they
63 don't have a perfect right to.
64
65 Some of these people think that merely writing to an interface
66 provided by GPL'd software will cause their program to become GPL'd
67 too, even if they don't distribute the GPL'd software.  I don't think
68 this is the case.  I'm perfectly happy for non-GPL'd software to refer
69 to adns in its source code or executables (eg, dynamic linking).
70 However, if you distribute adns yourself then whether a program which
71 uses it needs also to be GPL'd depends on the interpretation of the
72 `work as a whole' and `mere aggregation' parts of the GPL.
73
74 Whether you are distributing a `work as a whole' might depend on many
75 things, but they key one to me is what the appearance is to a user.
76 If the user knows that they are getting a collection of software
77 rather than a single product, then it's probably an aggregation which
78 works together.  So, you can distribute both your (i) non-GPLd program
79 source and/or binaries and (ii) adns source code or even binaries
80 (provided the adns source is available as per the GPL), eg from your
81 website, provided the user can tell that these are separate works and
82 can tell which parts are which.
83
84 But, if you package your program and adns together so that the user is
85 no longer aware of adns as a separate work, then I think you are
86 distributing a `work as a whole', and the whole work including adns
87 and your software which depends on it must be GPL'd.  This is of
88 course not a problem if your non-GPL licence is GPL-compatible (see
89 the next section): it just means that _when the whole lot is shipped
90 together as one work_ it is covered by the GPL.  People who wish to
91 make proprietary works based on just your code can do so, provided
92 they (or you) arrange for something to fill the hole left by the lack
93 of adns.
94
95
96 3. GPL-incompatible free software licences
97 ------------------------------------------
98
99 Regrettably, there are a number of free software licences (and
100 semi-free licences) in existence which are not compatible with the
101 GPL.  That is, they impose restrictions which are not present in the
102 GPL, and therefore distributing a whole work which contains such a
103 program and a GPL'd program is not possible: either the work would
104 have to be distributed under the GPL (violating the restrictions made
105 by the original author), or under the GPL-incompatible licence
106 (violating the GPL).
107
108 I may be prepared to make exceptions for such a licence.  Please
109 contact me at <adns-maint@chiark.greenend.org.uk> with the full text
110 of the GPL-incompatible licence.  However, I would prefer it if you
111 could use a GPL-compatible licence for your project instead.
112
113 There are a couple of common extra restrictions, and I make some
114 specific extensions to my licence for adns below.
115
116
117 3.1. BSD advertising clause, endorsement restriction, etc.
118
119 The most notable and common extra restriction found in free software
120 licences is the `obnoxious BSD advertising clause' (see Richard
121 Stallman's article on the subject, available from www.gnu.org) and the
122 endorsement restriction.
123
124 The problem with the advertising clause isn't that the sentence
125 required, referring the the Regents of the UC Berkeley, is awkward.
126 The problem is that if everyone contributing to a large project gets
127 such a mention the number of sentences required becomes very large;
128 however, it is unfair for some people to get credit and others not to.
129
130 I disapprove of these clause, but I recognise that it may be difficult
131 for some people to get them removed from particular programs.  The
132 other clauses are also arguable.
133
134
135 3.2. `Hosting service' restriction (eg, Affero GPL)
136
137 The additional restriction in the AGPL v1 (section 2d) seems
138 reasonable to me, in the circumstances.
139
140
141 3.3. Licence extension
142
143 So, I hereby make an extension to my licence for adns (`the Original
144 Work' in the text below).
145
146
147  LICENCE DEROGATION
148  ------------------
149
150  (A) Introduction:
151
152   (i)    The GNU GPL version 2, section 2b, and the later parts of
153          section 2, require that certain works be licenced to all
154          third parties under the terms of the GPL.
155
156   (ii)   As special relaxations of this requirement, described in
157          detail below, the terms of this onward licence to third
158          parties need not be (though they may be) exactly the terms of
159          the GPLv2.
160
161  (B) Preconditions:
162
163   (i)    There is a work (the `Original Work') which is licensed under
164          the GNU GPL v2.
165
166   (ii)   There is a work (the `GPL'd Work'), either the same work as
167          the Original Work, or derived work of the Original Work,
168          which is licensed uner the GNU GPL v2.
169
170   (iii)  All of the copyright holders of the GPL'd Work state that
171          this Licence Derogation is to apply, and what the Original
172          Work is.  (They may limit the Derogation to only some of the
173          Allowable Extra Provisions.)
174
175   (iv)   The GPL'd Work is combined with another work (the Other
176          Work) to make a `work as a whole', the Combined Work.
177
178   (x)    The Other Work is licenced free of charge to third parties;
179          under the terms of a licence henceforth known as the Other
180          Licence.
181
182   (xi)   The Other Licence is Free.
183
184   (v)    It would be an infringement of the copyright in the Other
185          Work for you to distribute the Combined Work under the terms
186          of the GNU GPL v2.
187
188   (vi)   There is a Resulting Licence which is the GNU GPL v2 amended
189          by the addition of Extra Provisions and the relevant
190          conditions from this Licence Derogation, where
191
192   (viii) the Extra Provisions are some or all of the Allowable Extra
193          Provisions (see below), and
194
195   (x)    the Extra Provisions are provisions of the Other Licence.
196
197
198  (C) Permission:
199
200   (i)    Provided that the the conditions in this Licence Derogation
201          are met, you may distribute the Combined Work under the terms
202          of the Resulting Licence.
203
204   (ii)   When the Combined Work is distributed under the terms of the
205          Resulting Licence, references to `this licence' in the text
206          of the GPL v2 may be read as references to the Resulting
207          Licence, or as references to the GPL v2, at your option.
208
209  (D) Further Conditions:
210
211   (i)    All parts of the Combined Work which are (identical to, parts
212          of, or derived from) the GPL'd Work can be easily separated
213          out from the Whole Work's source code to form once more a
214          Re-separated Work.
215
216   (ii)   The Re-separated Work is a version of the Original Work which
217          is similar or superior in all respects (including
218          completeness, functionality, quality etc.) to the Original
219          Work.
220
221   (iii)  The Re-separated Work is licensed to third parties under
222          terms identical to those under which the GPL'd Work is
223          licenced to those same third parties.
224
225   (iv)   Copyright licences and notices which would appear to the
226          reader to cover the Combined Work contain the following
227          statement or an equivalent:
228            Different parts of this software may be covered by
229            different copying conditions.  See individual source code
230            files or copyright statements for details.
231
232
233  (E) The Allowable Extra Provision Kinds:
234
235    (i)   In each of the following Kinds (`(1)' onwards), the nature of
236          the Extra Provisions which are made Allowable, and the
237          further conditions which must be satisfied (and which
238          therefore form part of the Resulting Licence) are stated.
239
240    (ii)  All of the paragraphs (`(i)' onwards) stated in each Kind
241          must be satisfied, for Extra Provisions to be Allowable.
242
243   (1) `Obnoxious advertising clause':
244   
245    (i)   The Extra Provisions are those of the form:
246             All advertising materials mentioning features or use of
247             this software must display the following acknowledgement:
248               This product includes software developed by DEVELOPERS.
249          and re-wordings with similar effect, where DEVELOPERS is a
250          person or group associated with the development of the Other
251          Work.
252
253    (ii)  All advertising materials mentioning features or use of the
254          Combined Work must display a similar acknowledgement for
255          every Identifiable Author.
256
257    (iii) All distributions of the Combined Work must contain a list of
258          the Identifiable Authors.       
259
260   (2) `Endorsement restriction':
261
262    (i)   The Extra Provisions are ones which restrict the use of the 
263          authors', copyright holders' and/or contributors' names for
264          endorsement or promotion of products.
265
266    (ii)  The endorsement restriction(s) must benefit all of the
267          natural persons and organisations with an interest in the
268          Whole Work, unless those people wish otherwise.
269
270   (3) `Liability limitation':
271
272    (i)   The Extra Provisions are ones which claim to exclude or limit
273          in any way the liability, for malfunctions, failures etc. of
274          the Whole Work or parts thereof, of any contributors,
275          distributors, copyright holders, authors, etc. of the
276          software.  Provisions which seek to deny warranties, even
277          implied warranties, or which otherwise seek to limit similar 
278          exposure(s) to risk(s), count.
279
280    (ii)  The protections of the Extra Provisions must be extended to
281          all of the authors and distributors of the Whole Work, unless
282          those people wish otherwise.
283
284
285   (4) `Pointless restatements':
286
287    (i)   The Extra Provisions are ones which require distributions of
288          the Whole Work to contain notices in source and/or binary
289          distributions, and/or in the documentation and/or other
290          materials provided with the distributions.
291
292    (ii)  The required notices must be simple truths, or restatements
293          of licence provisions which actually apply to the Combined
294          Work.
295
296    (iii) (The author of this Licence Derogation believes that
297          `pointless restatement requirements' are compatible with the
298          GPLv2, since they seem to fall under the heading of an
299          `appropriate copyright notice and disclaimer of warranty',
300          which is already required by the GPLv2.  However, this
301          relaxation is provided in case of doubt.)
302
303
304   (5) `Service provision - source code to users' (eg AGPL):
305
306    (i)   The Extra Provisions apply only
307         (a) when the Other Work or Combined Work is intended to
308             interact with people (`Users') through a computer network,
309             or
310         (b) when the Other Work or Combined Work is executed on behalf
311             of a third party (the `User'),
312          (or when both (a) and (b) apply).
313
314    (ii)  There exists a Sensible Publication Mechanism such that the
315          Extra Provisions are satisfied when:
316         (a) the Combined Work is made available free of charge to the
317             public, by that Sensible Publication Mechanism, and
318         (b) the existence and details of the Sensible Publication
319             Mechanism are made known in appropriate ways to each
320             User.
321
322    (iii) A Sensible Publication Mechanism is a reasonable and
323          convenient means for allowing members of the public
324          (`Downloaders') to obtain the source code in machine-readable
325          form.
326
327    (iv)  A Sensible Publication Mechanism is not more onerous to
328          provide than a public-facing World Wide Web server.
329
330
331  (F) Additional definitions:
332
333   (i)    A Free software licence is one which is approved both
334         (a) as a Free Software licence by the Free Software
335             Foundation, and
336         (b) as an Open Source Licence by the Open Source Initiative.
337
338   (ii)   A Combining Participant includes any person:
339         (a) who makes a modification to the Other Work, which is
340             now included in the Combined Work, with a view to the
341             creation of any work which might be a Combined Work
342             according to this Licence Derogation; or
343         (b) who obtains the Other Work and GPL'd work separately and
344             distributes the Combined Work.
345
346   (iii)  An Identifiable Author is
347         (a) a natural person
348         (b) who contributed to the Combined Work (including without
349             limitation as a work for hire)
350         (c) whose identity or proper form of acknowledgement it
351             reasonably practical to determine by inspection of the
352             Authorship Documentation,
353         (d) and who has not stated publicly that they do not wish such
354             acknowledgements to be displayed.
355
356   (iv)   The Authorship Documentation includes all copyright notices,
357          authorship notices, credits files, change logs,
358          acknowledgements, and similar documentation, in the source
359          code for the Original Work, the GPL'd Work, the Other Work
360          and the Combined Work.
361
362   (v)    The Authorship Documentation also includes any communications
363          received by a Combining Participant regarding authorship of
364          any part of the Combined Work.
365
366
367
368
369
370    (iv)  A Sensible Publication Mechanism does not require any
371          Downloader to provide any identification or authorisation
372          other than that inherently required by the underlying
373          technical mechanisms.
374
375    (v)   A Sensible Publication Mechanism is free of charge.
376
377    (vi)  A Sensible Publication Mechanism does not make any efforts to
378          trace, track, cross-reference, or otherwise gain information
379          about Downloaders, other than the minimum data required for
380          direct technical fault-finding; any data collected shall be
381          used only for direct technical fault-finding.
382
383    (vii) Where a Sensible Publication Mechanism involves
384          implementation of a technical communications protocol, the
385          Mechanism must permit the use by Downloaders of the widest
386          feasible range of standards-compliant software.
387
388    (vii) For example, for download via the public World Wide Web to
389          satisfy this paragraph, the HTTP server must permit downloads
390          from any IP address, and it may not have any access controls,
391          cookies, reverse DNS requirements, registration forms, adult
392          checks, authorisation codes, email confirmations, URL
393          session-ids, browser restrictions, JavaScript, Java, Flash,
394          and must use the most conservative possible HTML, and the
395          webserver logs must contain the least possible information
396          and be expired quickly.
397
398 DRAFT
399
400 , or to pay anyone any
401          money.
402
403    
404
405 which there is a
406          Sensible Mechanism  can be 
407
408 (to the Other Work publicly and freely available.
409
410           (a) (from `AGPL version 1')
411                If the Program as you received it is intended to
412                interact with users through a computer network and if,
413                in the version you received, any user interacting with
414                the Program was given the opportunity to request
415                transmission to that user of the Program's complete
416                source code, you must not remove that facility from
417                your modified version of the Program or work based on
418                the Program, and must offer an equivalent opportunity
419                for all users interacting with your Program through a
420                computer network to request immediate transmission by
421                HTTP of the complete source code of your modified
422                version or other derivative work.
423
424
425 DRAFT --- Ian Jackson 10.5.1999
426
427 Local variables:
428 mode: text
429 End: