*** empty log message ***
[bpt/emacs.git] / admin / notes / copyright
1 Copyright (C) 2007 Free Software Foundation, Inc.
2 See the end of the file for license conditions.
3
4
5 NOTES ON COPYRIGHTS AND LICENSES
6
7 Some terminology:
8
9 A "copyright notice" consists of one or a few lines of this format:
10 "Copyright (C) 2006, 2007 Free Software Foundation, Inc."
11
12 A "license notice" is a statement of permissions, and is usually much
13 longer, eg the text "GNU Emacs is free software...".
14
15
16 Summary for the impatient:
17
18 1. Don't add a file to Emacs written by someone other than yourself
19 without thinking about the legal aspect (make sure they have an
20 assignment, adjust the copyright statements in the file). NB the
21 ChangeLog entry should be in the name of the author of the code, not
22 the person who installs it.
23
24 2. With images, add the legal info to a README file in the directory
25 containing the image.
26
27 3. If you add a lot of text to a previously trivial file that had no
28 legal notices, consider if you should add a copyright statement.
29
30 4. Please don't just add an FSF copyright without checking that is the
31 right thing to do.
32
33
34 Every non-trivial file distributed through the Emacs CVS should be
35 self-explanatory in terms of copyright and license. This includes
36 files that are not distributed in Emacs releases (for example, the
37 admin/ directory), because the whole Emacs CVS is publicly
38 available.
39
40 The definition of triviality is a little vague, but a rule of thumb is
41 that any file with less than 15 lines of actual content is trivial. If
42 a file is auto-generated (eg ldefs-boot.el) from another one in the
43 CVS, then it does not really matter about adding a copyright statement
44 to the generated file.
45
46 Legal advice says that we could, if we wished, put a license notice
47 even in trivial files, because copyright law in general looks at the
48 overall work as a whole. It is not _necessary_ to do so, and rms
49 prefers that we do not. This means one needs to take care that trivial
50 files do not grow and become non-trivial without having a license
51 added. NB consequently, if you add a lot of text to a small file,
52 consider whether your changes have made the file worthy of a copyright
53 notice, and if so, please add one.
54
55 It can be helpful to put a reminder comment at the start of a trivial
56 file, eg: "add a license notice if this grows to > 10 lines of code".
57
58 The years in the copyright notice should be updated every year (see
59 file "years" in this directory). The PS versions of refcards etc
60 should display copyright notices (an exception to the rule about
61 "generated" files), but these can just display the latest year. The
62 full list of years should be kept in comments in the source file. If
63 these are distributed in CVS, check in a regenerated version when the
64 tex files are updated.
65
66 Copyright changes should be propagated to any associated repositories
67 (eg Gnus, MH-E), but I think in every case this happens automatically
68 (?).
69
70 All README (and other such text files) that are non-trivial should
71 contain copyright statements and GPL license notices, exactly as .el
72 files do (see e.g. README in the top-level directory). Before 2007,
73 we used a simple, short statement permitting copying and modification
74 provided legal notices were retained. In Feb 2007 we switched to the
75 standard GPL text, on legal advice. Some older text files in etc/
76 should, however, keep their current licenses (see below for list).
77
78 For image files, the copyright and license details should be recorded
79 in a README file in each directory with images. (Legal advice says
80 that we need not add notices to each image file individually, if they
81 allow for that.). It is recommended to use the word "convert" to
82 describe the automatic process of changing an image from one format to
83 another (http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00618.html).
84
85
86 When installing a file with an "unusual" license (after checking first
87 it is ok), put a copy of the copyright and license in the file (if
88 possible. It's ok if this makes the file incompatible with its
89 original format, if it can still be used by Emacs), or in a README
90 file in the relevant directory.
91
92 The vast majority of files are copyright FSF and distributed under the
93 GPL. A few files (mainly related to language and charset support) are
94 copyright AIST alone, or both AIST and FSF. (Contact Kenichi Handa
95 with questions about legal issues in such files.) In all these cases,
96 the copyright years in each file should be updated each year.
97
98 There are some exceptions to the points in the previous paragraph, and
99 these are listed below for reference, together with any files where
100 the copyright needs to be updated in "unusual" ways.
101
102 If you find any other such cases, please consult to check they are ok,
103 and note them in this file. This includes missing copyright notices,
104 and "odd" copyright holders. In most cases, individual authors should
105 not appear in copyright statements. Either the copyright has been
106 assigned (check copyright.list) to the FSF (in which case the original
107 author should be removed and the year(s) transferred to the FSF); or
108 else it is possible the file should not be in Emacs at all (please
109 report!).
110
111 Note that it seems painfully clear that one cannot rely on CVS logs,
112 or even ChangeLogs, for older changes. People often installed changes
113 from others, without recording the true authorship.
114
115 [For reference, most of these points were established via email with
116 rms, 2007/1, "Copyright years".]
117
118
119 lib-src/etags.c # print_version
120 lib-src/rcs2log # Copyright
121 lisp/calc/calc-help.el # calc-full-help
122 lisp/startup.el # fancy-splash-tail
123 mac/Emacs.app/Contents/Resources/English.lproj/InfoPlist.strings
124 mac/src/Emacs.r # resource 'vers'
125 src/emacs.c
126 - remember to change the latest copyright year in the --version output.
127 [Post-release, will automate this like set-version does for version.]
128
129 <top-level>/install-sh
130 lispintro/install-sh
131 - this file is copyright MIT, which is OK. Leave the copyright alone.
132
133 src/m/news-r6.h
134 public domain, leave alone.
135
136 etc/edt-user.doc
137 - update BOTH notices in this file
138
139 etc/emacs.csh
140 - keep simple license for this simple file
141
142 etc/future-bug
143 - doesn't need a humourless disclaimer, because Karl Fogel says we
144 can consider it part of Emacs, and he has a blanker disclaimer for
145 Emacs changes. (email to rgm "[Emacs-commit] emacs/etc future-bug",
146 2007028)
147
148 etc/letter.pbm,letter.xpm
149 - trivial, no notice needed.
150 <http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00324.html>
151
152 etc/FTP, ORDERS
153 - trivial (at time of writing), no license needed
154
155 etc/GNU, INTERVIEW, LINUX-GNU, MOTIVATION, SERVICE, THE-GNU-PROJECT,
156 WHY-FREE
157 rms: "These are statements of opinion or testimony. Their licenses
158 should permit verbatim copying only. Please don't change the
159 licenses that they have. They are distributed with Emacs but they
160 are not part of Emacs."
161
162 etc/MAILINGLISTS
163 rms: simple license is fine for this file
164
165 leim/CXTERM-DIC/4Corner.tit, ARRAY30.tit, CCDOSPY.tit, ECDICT.tit,
166 ETZY.tit, PY-b5.tit, Punct-b5.tit, Punct.tit, QJ-b5.tit, QJ.tit,
167 SW.tit, TONEPY.tit, ZOZY.tit
168 - leave the copyrights alone.
169
170 leim/MISC-DIC/CTLau-b5.html, CTLau.html, cangjie-table.b5, cangjie-table.cns,
171 pinyin.map, ziranma.cin
172 - leave the copyright alone.
173 Note that pinyin.map, ziranma.cin (and hence the generated
174 leim/quail/PY.el, ZIRANMA.el) are under GPLv1 or later.
175
176 leim/SKK-DIC/SKK-JISYO.L
177 ja-dic/ja-dic.el
178 (the latter is auto-generated from the former). Leave the copyright alone.
179
180 lib-src/etags.c
181 Copyright information is duplicated in etc/ETAGS.README. Update that
182 file too.
183
184 Until 2007 etags.c was described as being copyright FSF and Ken Arnold.
185 After some investigation in Feb 2007, then to the best of our
186 knowledge we believe that the original 1984 Emacs version was based
187 on the version in BSD4.2. See for example this 1985 post from Ken Arnold:
188 <http://groups.google.com/group/mod.sources/browse_thread/thread/ffe5c55845a640a9>
189 I have received enough requests for the current source to ctags
190 to post it. Here is the latest version (what will go out with
191 4.3, modulo any bugs fixed during the beta period). It is the
192 4.2 ctags with recognition of yacc and lex tags added.
193
194 See also a 1984 version of ctags (no copyright) posted to net.sources:
195 <http://groups.google.com/group/net.sources/msg/a21b6c21be12a98d>
196 Version of etags.c in emacs-16.56 duplicates comment typos.
197
198 Accordingly, in Feb 2007 we added a 1984 copyright for the
199 University of California and a revised BSD license. The terms of
200 this require that the full license details be available in binary
201 distributions - hence the file etc/ETAGS.README.
202
203 lib-src/getopt1.c, getopt_int.h
204 - these are from the GNU C library. Leave the copyrights alone.
205
206 lisp/play/tetris.el
207 - no special rules about the copyright. We note here that we believe
208 (2007/1) there is no problem with our use of the name "tetris" or
209 the concept.
210 rms: "My understanding is that game rules as such are not copyrightable."
211 <http://lists.gnu.org/archive/html/emacs-devel/2007-01/msg00960.html>
212
213 lispref/doclicense.texi
214 man/doclicense.texi
215 - leave the copyright alone in this imported file.
216
217 lisp/net/tramp.el
218 - there are also copyrights in the body of the file. Update these too.
219
220
221 lwlib/
222 rms (2007/02/17): "lwlib is not assigned to the FSF; we don't consider
223 it part of Emacs. [...] Therefore non-FSF copyrights are ok in lwlib."
224
225 Leave these files under GPLv1 or later.
226 [Note that lwlib.c and xlwmenu.c were installed in 1994 under GPLv2 or
227 later, but I reverted them to GPLv1 or later which I think is right
228 for the original lwlib/.] FIXME was this right?
229
230 FSF copyrights should only appear in files which have undergone
231 non-trivial cumulative changes from the original versions in the Lucid
232 Widget Library. NB this means that if you make non-trivial changes to
233 a file with no FSF copyright, you should add one. Also, if changes are
234 reverted to the extent that a file becomes basically the same as the
235 original version, the FSF copyright should be removed.
236
237 In my (rgm) opinion, as of Feb 2007, all the non-trivial files differ
238 significantly from the original versions, with the exception of
239 lwlib-Xm.h. Most of the changes that were made to this file have
240 subsequently been reverted. Therefore I removed the FSF copyright from
241 this file (which is arguably too trivial to merit a notice anyway). I
242 added FSF copyright to the following files which did not have them
243 already: Makefile.in, lwlib-Xaw.c, lwlib-int.h (borderline),
244 lwlib-utils.c (borderline), lwlib.c, lwlib.h.
245
246 Copyright years before the advent of public CVS in 2001 were those
247 when I judged (from the CVS logs) that non-trivial amounts of change
248 had taken place. I also adjusted the existing FSF years in xlwmenu.c,
249 xlwmenu.h, and xlwmenuP.h on the same basis.
250
251 Note that until Feb 2007, the following files in lwlib were lacking
252 notices: lwlib-int.h, lwlib.h, lwlib-Xaw.h, lwlib-Xlw.h, lwlib-utils.h
253
254 The following files did not list a Lucid copyright: xlwmenu.h,
255 xlwmenuP.h.
256
257 To the best of our knowledge, all the code files in lwlib were
258 originally part of the Lucid Widget Library, even if they did not say
259 so explicitly. For example, they were all present in Lucid Emacs 19.1
260 in 1992. The exceptions are the two Xaw files, which did not appear
261 till Lucid Emacs 19.9 in 1994. The file lwlib-Xaw.h is too trivial to
262 merit a copyright notice, but would presumably have the same one as
263 lwlib-Xaw.c. We have been unable to find a true standalone version of
264 LWL, if there was such a thing, to check definitively.
265
266 To clarify the situation, in Feb 2007 we added Lucid copyrights and
267 GPL notices to those files lacking either that were non-trivial,
268 namely: lwlib-int.h, lwlib.h, xlwmenu.h, xlwmenuP.h. This represents
269 our best understanding of the legal status of these files. We also
270 clarified the notices in Makefile.in, which was originally the
271 Makefile auto-generated from Lucid's Imakefile.
272
273 As of Feb 2007, the following files are considered too trivial for
274 notices: lwlib-Xaw.h, lwlib-Xlw.h, lwlib-utils.h.
275
276
277 msdos/is_exec.c, sigaction.c
278 - these files are copyright DJ Delorie. Leave the copyrights alone.
279 Leave the Eli Zaretskii copyright in is_exec.c alone. See the
280 msdos/README file for the legal history of these files.
281
282
283 oldXMenu/
284 Keep the "copyright.h" method used by X11, rather than moving the
285 licenses into the files. Note that the original X10.h did not use
286 copyright.h, but had an explicit notice, which we retain.
287
288 If you make non-trivial changes to a file which does not have an FSF
289 notice, add one and a GPL notice (as per Activate.c). If changes to a
290 file are reverted such that it becomes essentially the same as the
291 original X11 version, remove the FSF notice and GPL.
292
293 Only the files which differ significantly from the original X11
294 versions should have FSF copyright and GPL notices. At time of writing
295 (Feb 2007), this is: Activate.c, Create.c, Internal.c. I (rgm)
296 established this by diff'ing the current files against those in X11R1,
297 and when I found significant differences looking in the ChangeLog for
298 the years they originated (the CVS logs are truncated before 1999). I
299 therefore removed the FSF notices (added in 200x) from the other
300 files. There are some borderline cases IMO: AddSel.c, InsSel.c,
301 XMakeAssoc.c, XMenu.h. For these I erred on the side of NOT adding FSF
302 notices.
303
304 With regards to whether the files we have changed should have GPL
305 added or not, rms says (2007-02-25, "oldXmenu issues"):
306
307 It does not make much difference, because oldXmenu is obsolete
308 except for use in Emacs (and it is not normally used in Emacs any
309 more either).
310
311 So, to make things simple, please put our changes under the GPL.
312
313 insque.c had no copyright notice until 2005. The version of insque.c
314 added to Emacs 1992-01-27 is essentially the same as insremque.c added
315 to glic three days later by Roland McGrath, with an FSF copyright and
316 GPL, but no ChangeLog entry:
317 <http://sources.redhat.com/cgi-bin/cvsweb.cgi/~checkout~/libc/misc/insremque.c?\
318 rev=1.1&cvsroot=glibc>
319 To the best of his recollection, McGrath (who has a copyright
320 assignment) was the author of this file (email from roland at frob.com
321 to rms, 2007-02-23, "Where did insque.c come from?"). The FSF
322 copyright and GPL in this file are therefore correct as far as we
323 understand it.
324
325 Imakefile had no legal info in Feb 2007, but was obviously based on
326 the X11 version (which also had no explicit legal info). As it was
327 unused, I removed it. It would have the same MIT copyright as
328 Makefile.in does now.
329
330
331 src/gmalloc.c
332 - contains numerous copyrights from the GNU C library. Leave them alone.
333
334 src/acldef.h, chpdef.h, ndir.h
335 - see comments below. These files are OK to be released with Emacs
336 22, but we may want to revisit them afterwards.
337
338 [src/unexhp9k800.c - removed 2007/1/27]
339 [src/m/sr2k.h - removed 2007/1/27]
340 - First file removed due to legal uncertainties; second file removed
341 due to dependency on first. Note that src/m/hp800.h is still needed on
342 hp800 arch.
343 NB we would like to re-add this file if we can. Please let us know
344 if you can clarify its legal status.
345
346
347 ** Some notes on resolved issues, for historical information only
348
349 lisp/term/README
350 - had no copyright notice till Feb 2007. ChangeLog.3 suggests it was
351 written by Eric Raymond. When asked by rms on 14 Feb 2007 he said:
352
353 I don't remember writing it, but it reads like my prose and I believe
354 I wrote the feature(s) it's describing. So I would have been the
355 likeliest person to write it.
356
357 Odds are that I did, but I'm not certain.
358
359 Accordingly, FSF copyright was added.
360
361
362 ** Issues that are "fixed" for the release of Emacs 22, but we may
363 wish to revisit later in more detail
364
365
366 admin/check-doc-strings
367 File says it's in the public domain, but that might not make it so.
368
369
370 etc/e/eterm-color.ti
371 src/acldef.h, chpdef.h, ndir.h
372 On legal advice from Matt Norwood, the following comment was added
373 to these files in Feb 2007:
374
375 The code here is forced by the interface, and is not subject to
376 copyright, constituting the only possible expression of the
377 algorithm in this format.
378
379 With the addition of this notice, these files are OK for the
380 upcoming Emacs-22 release. Post-release, we can revisit this issue
381 and possibly add a list of all authors who have changed these files.
382 (details in email from Matt Norwood to rms, 2007/02/03).
383
384
385 src/m/mips4.h, news-risc.h, pmax.h
386 src/s/aix3-2.h, bsd386.h, hpux8.h, hpux9.h, irix4-0.h, irix5-0.h,
387 isc2-2.h, netbsd.h, osf1.h, sol2-3.h, sunos4-0.h, usg5-4-2.h
388 - all these (not obviously trivial) files were missing copyrights
389 till Feb 2007, when FSF copyright was added. Matt Norwood advised:
390
391 For now, I think the best policy is to assume that we do have
392 assignments from the authors (I recall many of these header files
393 as having been originally written by rms), and to attach an FSF
394 copyright with GPL notice. We can amend this if and when we
395 complete the code audit. Any additions to these files by
396 non-assigned authors are arguably "de minimis" contributions to
397 Emacs: small changes or suggestions to a work that are subsumed in
398 the main authors' copyright in the entire work.
399
400 Here is my (rgm) take on the details of the above files:
401
402 mips4.h
403 might be trivial? started trivial, been added to in tiny changes by
404 those with FSF assignment, often result of email suggestions by others.
405
406 news-risc.h
407 started trivial. Grown by tiny additions, plus chunk
408 from mips.h, which was and is Copyright FSF
409
410 pmax.h
411 started trivial. grown in tiny changes, except for maybe Jim Wilson's
412 comment.
413
414 ? irix4-0.h
415 I would say started non-trivial (1992, rms). only tiny changes since
416 installed.
417
418 ? irix5-0.h
419 I would say started non-trivial (1993, jimb, heavily based
420 on irix4-0.h). A few borderline non-tiny changes since.
421
422 ? isc2-2.h
423 started trivial. 2 non-tiny change, in 1993. looks to
424 be made up of several small tweaks from various sources. maybe
425 non-tiny total changes from Karl Berry (no emacs assignment).
426
427 osf1.h
428 started trivial. grown in tiny changes (one borderline tiny change
429 by fx in 2000, but most code was later removed). non-tiny addition
430 in 2002 from m/alpha.h, but that was and is copyright FSF.
431
432 usg5-4-2.h
433 started non-trivial, but was heavily based on usg5-4.h, which was and is
434 copyright FSF. only tiny changes since installed.
435
436 sol2-3.h
437 started trivial. only non-tiny change (1994) incorporated code from
438 usg5-4.h, which was and is copyright FSF.
439
440 aix3-2.h, bsd386.h, hpux8.h, hpux9.h, netbsd.h, sunos4-0.h
441 started trivial, grown in tiny changes.
442
443 netbsd.h:
444 Roland McGrath said to rms (2007/02/17): "I don't really remember
445 anything about it. If I put it in without other comment, then probably
446 I wrote it myself."
447
448
449 Someone might want to tweak the copyright years (for dates before
450 2001) that I used in all these files.
451
452 Note: erring on the side of caution, I also added notices to some
453 files I thought might be considered non-trivial (if one includes
454 comment) in s/:
455 aix4-1.h hiuxmpp.h hiuxwe2.h hpux10.h irix6-0.h irix6-5.h isc3-0.h
456 ptx4.h sol2.h sunos4-0.h
457
458 (everything with > 30 non-blank lines, which at least is _some_ kind of
459 system)
460
461
462 *** These are copyright issues that need not be fixed until after
463 Emacs 22 is released (though if they can be fixed before, that is
464 obviously good):
465
466 Maybe some relevant comments here?
467 <http://groups.google.com/group/linux.debian.legal/browse_thread/thread/123547ea95437a1f>
468
469
470 Is it OK to just `cvs remove' a file for legal reasons, or is
471 something more drastic needed? A removed file is still available from
472 CVS, if suitable options are applied. (This CVS issue obviously does
473 not affect a release).
474 rms: will ask lawyer
475
476
477 Make sure that all files with non-standard copyrights or licenses are
478 noted in this file.
479
480
481 etc/BABYL
482 File says it was written in 1983 by Eugene Ciccarelli, who has no
483 assignment. RMS: "The lawyer said we can keep BABYL."
484
485
486 REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico
487 - Restore if find legal info. emacs21.ico is not due to Davenport.
488 Voelker could not immediately recall anything, but will check and
489 let us know if he finds anything.
490
491
492 etc/images
493 Image files from GTK, Gnome are under GPLv2 (no "or later"?). RMS will
494 contact image authors in regards to future switch to v3.
495
496
497 REMOVED src/unexhp9k800.c
498 - we would like to re-add this file if possible. Please let us know
499 if you can clarify its legal status.
500 http://lists.gnu.org/archive/html/emacs-devel/2007-02/msg00138.html
501
502
503 *** These are copyright issues still to be addressed:
504
505 NB apart from switching the TUTORIALs to GPL, I think there is nothing
506 here that anyone can work on without further input from rms.
507
508
509 etc/gnus-logo.eps, gnus-booklet.ps, gnus-refcard.ps
510 just to be safe, papers are on the way for the "Gnus logo", even
511 though it is very similar to the already-assigned "Emacs logo".
512
513
514 etc/ms-kermit - no copyright, but ms-7bkermit has one
515
516
517 etc/TUTORIAL* (translations)
518 switch to GPL (see english TUTORIAL)
519 rms: "We can leave the TUTORIAL translations alone until their
520 maintainers update them."
521 Can adapt short license text from end of GPL translations at:
522 http://www.gnu.org/licenses/translations.html
523 Only a few sentences around the license notice need changing from
524 previous version.
525 Done: TUTORIAL.eo
526
527
528 lwlib/*
529 should it be under GPLv1 or later, or v2 or later?
530
531
532 \f
533 This file is part of GNU Emacs.
534
535 GNU Emacs is free software; you can redistribute it and/or modify
536 it under the terms of the GNU General Public License as published by
537 the Free Software Foundation; either version 2, or (at your option)
538 any later version.
539
540 GNU Emacs is distributed in the hope that it will be useful,
541 but WITHOUT ANY WARRANTY; without even the implied warranty of
542 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
543 GNU General Public License for more details.
544
545 You should have received a copy of the GNU General Public License
546 along with GNU Emacs; see the file COPYING. If not, write to the
547 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
548 Boston, MA 02110-1301, USA.