Replace mkinstalldirs with `install-sh -d', as automake recommends.
[bpt/emacs.git] / admin / notes / copyright
... / ...
Content-type: text/html HCoop Git - bpt/emacs.git/blame_incremental - admin/notes/copyright


500 - Internal Server Error

Malformed UTF-8 character (fatal) at (eval 8) line 1, <$fd> line 491.
CommitLineData
1Copyright (C) 2007-2011 Free Software Foundation, Inc.
2See the end of the file for license conditions.
3
4
5NOTES ON COPYRIGHTS AND LICENSES
6
7Some terminology:
8
9A "copyright notice" consists of one or a few lines of this format:
10"Copyright (C) 2006, 2007 Free Software Foundation, Inc."
11
12A "license notice" is a statement of permissions, and is usually much
13longer, eg the text "GNU Emacs is free software...".
14
15
16Summary for the impatient:
17
181. Don't add code to Emacs written by someone other than yourself
19without thinking about the legal aspect. Even if the changes are
20trivial, consider if they combine with previous changes by the same
21author to make a non-trivial total. If so, make sure they have an
22assignment. If adding a whole file adjust the copyright statements in
23the file.
24
252. When installing code written by someone else, the ChangeLog entry
26should be in the name of the author of the code, not the person who
27installs it. I think it is helpful to put the author (if not yourself)
28in the commit log as well (you can also use bzr commit's "--author"
29option); and to not install any of your own changes in the same commit.
30
313. With images, add the legal info to a README file in the directory
32containing the image.
33
344. If you add a lot of text to a previously trivial file that had no
35legal notices, consider if you should add a copyright statement.
36
375. Please don't just add an FSF copyright without checking that is the
38right thing to do.
39
40
41Every non-trivial file distributed through the Emacs repository should be
42self-explanatory in terms of copyright and license. This includes
43files that are not distributed in Emacs releases (for example, the
44admin/ directory), because the whole Emacs repository is publicly
45available.
46
47The definition of triviality is a little vague, but a rule of thumb is
48that any file with less than 15 lines of actual content is trivial. If
49a file is auto-generated (eg ldefs-boot.el) from another one in the
50repository, then it does not really matter about adding a copyright
51statement to the generated file.
52
53Legal advice says that we could, if we wished, put a license notice
54even in trivial files, because copyright law in general looks at the
55overall work as a whole. It is not _necessary_ to do so, and rms
56prefers that we do not. This means one needs to take care that trivial
57files do not grow and become non-trivial without having a license
58added. NB consequently, if you add a lot of text to a small file,
59consider whether your changes have made the file worthy of a copyright
60notice, and if so, please add one.
61
62It can be helpful to put a reminder comment at the start of a trivial
63file, eg: "add a license notice if this grows to > 10 lines of code".
64
65The years in the copyright notice should be updated every year (see
66file "years" in this directory). The PDF versions of refcards etc
67should display copyright notices (an exception to the rule about
68"generated" files), but these can just display the latest year. The
69full list of years should be kept in comments in the source file. If
70these are distributed in the repository, check in a regenerated
71version when the tex files are updated.
72
73Copyright changes should be propagated to any associated repositories
74(eg Gnus, MH-E), but I think in every case this happens automatically
75(?).
76
77All README (and other such text files) that are non-trivial should
78contain copyright statements and GPL license notices, exactly as .el
79files do (see e.g. README in the top-level directory). Before 2007,
80we used a simple, short statement permitting copying and modification
81provided legal notices were retained. In Feb 2007 we switched to the
82standard GPL text, on legal advice. Some older text files in etc/
83should, however, keep their current licenses (see below for list).
84
85For image files, the copyright and license details should be recorded
86in a README file in each directory with images. (Legal advice says
87that we need not add notices to each image file individually, if they
88allow for that.). It is recommended to use the word "convert" to
89describe the automatic process of changing an image from one format to
90another (http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00618.html).
91
92
93When installing a file with an "unusual" license (after checking first
94it is ok), put a copy of the copyright and license in the file (if
95possible. It's ok if this makes the file incompatible with its
96original format, if it can still be used by Emacs), or in a README
97file in the relevant directory.
98
99The vast majority of files are copyright FSF and distributed under the
100GPL. A few files (mainly related to language and charset support) are
101copyright AIST alone, or both AIST and FSF. (Contact Kenichi Handa
102with questions about legal issues in such files.) In all these cases,
103the copyright years in each file should be updated each year.
104
105There are some exceptions to the points in the previous paragraph, and
106these are listed below for reference, together with any files where
107the copyright needs to be updated in "unusual" ways.
108
109If you find any other such cases, please consult to check they are ok,
110and note them in this file. This includes missing copyright notices,
111and "odd" copyright holders. In most cases, individual authors should
112not appear in copyright statements. Either the copyright has been
113assigned (check copyright.list) to the FSF (in which case the original
114author should be removed and the year(s) transferred to the FSF); or
115else it is possible the file should not be in Emacs at all (please
116report!).
117
118Note that it seems painfully clear that one cannot rely on commit logs,
119or even ChangeLogs, for older changes. People often installed changes
120from others, without recording the true authorship.
121
122[For reference, most of these points were established via email with
123rms, 2007/1, "Copyright years".]
124
125
126lisp/version.el # emacs-copyright
127lib-src/ebrowse.c # version
128lib-src/etags.c # print_version
129lib-src/rcs2log # Copyright
130Cocoa/Emacs.base/Contents/Info.plist
131Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings
132GNUstep/Emacs.base/Resources/Info-gnustep.plist
133 `set-copyright' in admin.el will do all the above.
134
135aclocal.m4
136configure
137m4/*.m4
138 - copyright FSF, with unlimited permission to copy, distribute and modify
139
140lib/Makefile.in
141 - copyright FSF, with MIT-like license
142
143install-sh
144 - this file is copyright MIT, which is OK. Leave the copyright alone.
145
146etc/refcards/*.tex
147 also update the \def\year macro for the latest year.
148
149etc/BABYL, ms-kermit
150 no notices (see below).
151
152etc/emacs.csh
153 - written by Michael DeCorte, who has no assignment. But trivial
154 enough to not need license.
155
156etc/future-bug
157 - doesn't need a humorless disclaimer, because Karl Fogel says we
158 can consider it part of Emacs, and he has a blanker disclaimer for
159 Emacs changes. (email to rgm "[Emacs-commit] emacs/etc future-bug",
160 2007028)
161
162etc/letter.pbm,letter.xpm
163 - trivial, no notice needed.
164<http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00324.html>
165
166etc/FTP, ORDERS
167 - trivial (at time of writing), no license needed
168
169etc/GNU, INTERVIEW, LINUX-GNU, MOTIVATION, SERVICE, THE-GNU-PROJECT,
170WHY-FREE
171 rms: "These are statements of opinion or testimony. Their licenses
172 should permit verbatim copying only. Please don't change the
173 licenses that they have. They are distributed with Emacs but they
174 are not part of Emacs."
175
176etc/HELLO
177 standard notices. Just a note that although the file itself is not
178 really copyrightable, in the wider context of it being part of
179 Emacs (and written by those with assignments), a standard notice is
180 fine.
181
182etc/MAILINGLISTS
183 rms: simple license is fine for this file
184
185leim/CXTERM-DIC/4Corner.tit, ARRAY30.tit, CCDOSPY.tit, ECDICT.tit,
186ETZY.tit, PY-b5.tit, Punct-b5.tit, Punct.tit, QJ-b5.tit, QJ.tit,
187SW.tit, TONEPY.tit, ZOZY.tit
188 - leave the copyrights alone.
189
190leim/MISC-DIC/CTLau-b5.html, CTLau.html, cangjie-table.b5, cangjie-table.cns,
191pinyin.map, ziranma.cin
192 - leave the copyright alone.
193Note that pinyin.map, ziranma.cin (and hence the generated
194leim/quail/PY.el, ZIRANMA.el) are under GPLv1 or later.
195
196leim/SKK-DIC/SKK-JISYO.L
197ja-dic/ja-dic.el
198 (the latter is auto-generated from the former). Leave the copyright alone.
199
200lib-src/etags.c
201 Copyright information is duplicated in etc/ETAGS.README. Update that
202 file too.
203
204 Until 2007 etags.c was described as being copyright FSF and Ken Arnold.
205 After some investigation in Feb 2007, then to the best of our
206 knowledge we believe that the original 1984 Emacs version was based
207 on the version in BSD4.2. See for example this 1985 post from Ken Arnold:
208 <http://groups.google.com/group/mod.sources/browse_thread/thread/ffe5c55845a640a9>
209 I have received enough requests for the current source to ctags
210 to post it. Here is the latest version (what will go out with
211 4.3, modulo any bugs fixed during the beta period). It is the
212 4.2 ctags with recognition of yacc and lex tags added.
213
214 See also a 1984 version of ctags (no copyright) posted to net.sources:
215 <http://groups.google.com/group/net.sources/msg/a21b6c21be12a98d>
216 Version of etags.c in emacs-16.56 duplicates comment typos.
217
218 Accordingly, in Feb 2007 we added a 1984 copyright for the
219 University of California and a revised BSD license. The terms of
220 this require that the full license details be available in binary
221 distributions - hence the file etc/ETAGS.README. The fact that the
222 --version output just says "Copyright <year> FSF" is apparently OK
223 from a legal point of view.
224
225lisp/cedet/semantic/imenu.el
226 - See http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00410.html
227 in which Eric Ludlam established that the remaining contributions
228 from authors other than himself were negligible.
229
230lisp/play/tetris.el
231 - no special rules about the copyright. We note here that we believe
232 (2007/1) there is no problem with our use of the name "tetris" or
233 the concept.
234 rms: "My understanding is that game rules as such are not copyrightable."
235 <http://lists.gnu.org/archive/html/emacs-devel/2007-01/msg00960.html>
236 rms: Legal advice is that we are ok and need not worry about this.
237
238
239lisp/net/tramp.el
240 - there are also copyrights in the body of the file. Update these too.
241
242
243lwlib/
244rms (2007/02/17): "lwlib is not assigned to the FSF; we don't consider
245it part of Emacs. [...] Therefore non-FSF copyrights are ok in lwlib."
246
247NB don't change the GPL version used for lwlib .c and .h files (see
248below).
249
250FSF copyrights should only appear in files which have undergone
251non-trivial cumulative changes from the original versions in the Lucid
252Widget Library. NB this means that if you make non-trivial changes to
253a file with no FSF copyright, you should add one. Also, if changes are
254reverted to the extent that a file becomes basically the same as the
255original version, the FSF copyright should be removed.
256
257In my (rgm) opinion, as of Feb 2007, all the non-trivial files differ
258significantly from the original versions, with the exception of
259lwlib-Xm.h. Most of the changes that were made to this file have
260subsequently been reverted. Therefore I removed the FSF copyright from
261this file (which is arguably too trivial to merit a notice anyway). I
262added FSF copyright to the following files which did not have them
263already: Makefile.in, lwlib-Xaw.c, lwlib-int.h (borderline),
264lwlib-utils.c (borderline), lwlib.c, lwlib.h.
265
266Copyright years before the advent of public CVS in 2001 were those
267when I judged (from the CVS logs) that non-trivial amounts of change
268had taken place. I also adjusted the existing FSF years in xlwmenu.c,
269xlwmenu.h, and xlwmenuP.h on the same basis.
270
271Note that until Feb 2007, the following files in lwlib were lacking
272notices: lwlib-int.h, lwlib.h, lwlib-Xaw.h, lwlib-Xlw.h, lwlib-utils.h
273
274The following files did not list a Lucid copyright: xlwmenu.h,
275xlwmenuP.h.
276
277To the best of our knowledge, all the code files in lwlib were
278originally part of the Lucid Widget Library, even if they did not say
279so explicitly. For example, they were all present in Lucid Emacs 19.1
280in 1992. The exceptions are the two Xaw files, which did not appear
281till Lucid Emacs 19.9 in 1994. The file lwlib-Xaw.h is too trivial to
282merit a copyright notice, but would presumably have the same one as
283lwlib-Xaw.c. We have been unable to find a true standalone version of
284LWL, if there was such a thing, to check definitively.
285
286To clarify the situation, in Feb 2007 we added Lucid copyrights and
287GPL notices to those files lacking either that were non-trivial,
288namely: lwlib-int.h, lwlib.h, xlwmenu.h, xlwmenuP.h. This represents
289our best understanding of the legal status of these files. We also
290clarified the notices in Makefile.in, which was originally the
291Makefile auto-generated from Lucid's Imakefile.
292
293As of Feb 2007, the following files are considered too trivial for
294notices: lwlib-Xaw.h, lwlib-Xlw.h, lwlib-utils.h.
295
296The version of lwlib/ first installed in Emacs seems to be the same as
297that used in Lucid Emacs 19.8 (released 6-sep-93); except the two Xaw
298files, which did not appear till Athena support was added in Lucid
299Emacs 19.9. In Lucid Emacs 19.1, all files were under GPLv1 or later,
300but by Lucid Emacs 19.8, lwlib.c and xlwmenu.c had been switched to v2
301or later. These are the versions that were first installed in Emacs.
302So in GNU Emacs, these two files have been under v2 or later since
3031994.
304
305It seems that it was the intention of Lucid to use v1 or later
306(excepting the two files mentioned previously); so this is the license
307we have used when adding notices to code that did not have notices
308originally. Although we have the legal right to switch to v2 or later,
309rms prefers that we do not do so.
310
311
312doc/*/doclicense.texi
313 - leave the copyright alone in this imported file.
314
315doc/*/*.texi - All manuals should be under GFDL (but see below), and
316should include a copy of it, so that they can be distributed
317separately. faq.texi has a different license, for some reason no-one
318can remember.
319http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00583.html
320http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00618.html
321
322doc/misc/mh-e.texi is dual-licensed (GPL and GFDL) per agreement with
323FSF (reconfirmed by rms Aug 25 2008). Discussion with
324licensing@fsf.org starting on Thu, 07 Aug 2003 with subject:
325"[gnu.org #58812] Changing license of MH-E manual"
326
327
328msdos/is_exec.c, sigaction.c - these files are copyright DJ Delorie.
329Leave the copyrights alone. Leave the Eli Zaretskii copyright in
330is_exec.c alone. See the msdos/README file for the legal history of
331these files.
332
333msdos/sed*.inp - These files are copyright FSF and distributed under
334an MIT-like license.
335
336
337oldXMenu/
338 Keep the "copyright.h" method used by X11, rather than moving the
339 licenses into the files. Note that the original X10.h did not use
340 copyright.h, but had an explicit notice, which we retain.
341
342If you make non-trivial changes to a file which does not have an FSF
343notice, add one and a GPL notice (as per Activate.c). If changes to a
344file are reverted such that it becomes essentially the same as the
345original X11 version, remove the FSF notice and GPL.
346
347Only the files which differ significantly from the original X11
348versions should have FSF copyright and GPL notices. At time of writing
349(Feb 2007), this is: Activate.c, Create.c, Internal.c. I (rgm)
350established this by diff'ing the current files against those in X11R1,
351and when I found significant differences looking in the ChangeLog for
352the years they originated (the CVS logs are truncated before 1999). I
353therefore removed the FSF notices (added in 200x) from the other
354files. There are some borderline cases IMO: AddSel.c, InsSel.c,
355XMakeAssoc.c, XMenu.h. For these I erred on the side of NOT adding FSF
356notices.
357
358With regards to whether the files we have changed should have GPL
359added or not, rms says (2007-02-25, "oldXmenu issues"):
360
361 It does not make much difference, because oldXmenu is obsolete
362 except for use in Emacs (and it is not normally used in Emacs any
363 more either).
364
365 So, to make things simple, please put our changes under the GPL.
366
367insque.c had no copyright notice until 2005. The version of insque.c
368added to Emacs 1992-01-27 is essentially the same as insremque.c added
369to glic three days later by Roland McGrath, with an FSF copyright and
370GPL, but no ChangeLog entry:
371<http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/misc/insremque.c?\
372rev=1.1&cvsroot=glibc>
373To the best of his recollection, McGrath (who has a copyright
374assignment) was the author of this file (email from roland at frob.com
375to rms, 2007-02-23, "Where did insque.c come from?"). The FSF
376copyright and GPL in this file are therefore correct as far as we
377understand it.
378
379Imakefile had no legal info in Feb 2007, but was obviously based on
380the X11 version (which also had no explicit legal info). As it was
381unused, I removed it. It would have the same MIT copyright as
382Makefile.in does now.
383
384
385src/gmalloc.c
386 - contains numerous copyrights from the GNU C library. Leave them alone.
387
388src/acldef.h, chpdef.h, ndir.h
389 - see comments below. These files are OK to be released with Emacs
390 22, but we may want to revisit them afterwards.
391
392
393** Some notes on resolved issues, for historical information only
394
395etc/TERMS
396rms: "surely written either by me or by ESR. (If you can figure out
397which year, I can probably tell you which.) Either way, we have papers
398for it." It was present in Emacs-16.56 (15-jul-85). rms: "Then I
399conclude it was written by me."
400
401etc/ulimit.hack
402 Very obsolete file removed March 2007. Doesn't say who the author
403is, but web-search suggests Karl Kleinpaste, who has no Emacs
404assignment. Trivial anyway.
405http://groups.google.com/group/comp.unix.shell/browse_thread/thread/bf3df496994\
4069f1df/7e5922c67b3a98fb
407http://groups.google.com/group/comp.unix.questions/msg/cc7e49cacfd1ccb4
408 (original 1987 source)
409
410lisp/term/README
411 - had no copyright notice till Feb 2007. ChangeLog.3 suggests it was
412 written by Eric Raymond. When asked by rms on 14 Feb 2007 he said:
413
414 I don't remember writing it, but it reads like my prose and I believe
415 I wrote the feature(s) it's describing. So I would have been the
416 likeliest person to write it.
417
418 Odds are that I did, but I'm not certain.
419
420 Accordingly, FSF copyright was added.
421
422src/unexhp9k800.c
423 http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00138.html
424 - briefly removed due to legal uncertainly Jan-Mar 2007. The
425 relevant assignment is under "hp9k800" in copyright.list. File was
426 written by John V. Morris at HP, and disclaimed by the author and
427 HP. So this file is public domain.
428
429
430K Rodgers changes
431 It was pointed out that K Rodgers only had assigments for VC and
432 ps-print, but had changed several other files. We tried to contact
433 him for a general assignment, but he proved uncommunicative (despite
434 initially indicating to rms he would sign an assignment). As a result, his
435 changes were removed and/or rewritten independently. For details, see
436 threads:
437http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00225.html
438http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00257.html
439
440 But then an assignment arrived before the release of Emacs 22:
441http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg01427.html
442
443
444lisp/progmodes/python.el
445Dave Love alerted us to a potential legal problem:
446http://lists.gnu.org/archive/html/emacs-pretest-bug/2007-04/msg00459.html
447
448On consultation with a lawyer, we found there was no problem:
449http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg00466.html
450
451
452** Issues that are "fixed" for the release of Emacs 22, but we may
453 wish to revisit later in more detail
454
455
456admin/check-doc-strings
457 File says it's in the public domain, but that might not make it so.
458
459etc/BABYL
460 File written long ago by authors with no assignment. Keep them
461 without notices for now, try and contact authors if possible. Be
462 ready to remove these files if the authors ever object.
463
464etc/ms-kermit
465etc/e/eterm-color.ti
466src/acldef.h, chpdef.h, ndir.h
467 On legal advice from Matt Norwood, the following comment was added
468 to these files in Feb/Mar 2007:
469
470 The code here is forced by the interface, and is not subject to
471 copyright, constituting the only possible expression of the
472 algorithm in this format.
473
474 With the addition of this notice, these files are OK for the
475 upcoming Emacs-22 release. Post-release, we can revisit this issue
476 and possibly add a list of all authors who have changed these files.
477 (details in email from Matt Norwood to rms, 2007/02/03).
478
479etc/ms-7bkermit
480 Says it was written by Andy Lowry and Joel Spolsky. No entry for
481either in copyright.list. NB this file is not "constrained" like
482ms-kermit (rms: "We know it isn't. A comment at the front says it has
483other bindings which might be handy."). File removed March 2007.
484Re-add if clear up status at some point.
485
486etc/Xkeymap.txt
487 No info on author. File removed March 2007. rms: "It says it is
488RLK's way of remapping his keyboard, so it is not constrained. I think
489it was written by RLK. Let's delete it; if we contact RLK again, we
490can put it back." Actually, RLK == Robert Krawitz has an Emacs
491