77 lines
3.5 KiB
Plaintext
77 lines
3.5 KiB
Plaintext
HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS
|
|
|
|
Maintaining copyright years is very simple: every time a new year
|
|
rolls around, add that year to every FSF (and AIST) copyright notice.
|
|
Do this by running the 'admin/update-copyright' script on a fresh repo
|
|
checkout, redirecting its output to a file, so that you could later
|
|
examine the files that don't have copyright notices. Inspect the
|
|
results for plausibility, then commit them.
|
|
|
|
A few known problems with the build-aux/update-copyright script:
|
|
|
|
. it doesn't update config.bat, msdos/depfiles.bat,
|
|
nt/configure.bat, etc/tutorials/TUTORIAL.cn,
|
|
etc/tutorials/TUTORIAL.el_GR, etc/tutorials/TUTORIAL.he,
|
|
because the "Copyright" statement begins in these files
|
|
after a prefix that is more than 5 characters long
|
|
. it doesn't update etc/tutorials/TUTORIAL.nl,
|
|
etc/tutorials/TUTORIAL.ro, and msdos/autogen/Makefile.in,
|
|
for some reason
|
|
. it doesn't update the second Copyright notice, the one that gets
|
|
output into PDF and PS, in etc/refcards/ru-refcard.tex
|
|
. it doesn't update etc/refcards/gnus-refcard.tex, doc/misc/org.org,
|
|
nt/emacs.rc.in, and nt/emacsclient.rc.in, because their Copyright
|
|
statements have a non-standard format
|
|
. several README files under etc/images/, and also
|
|
etc/refcards/README, msdos/README, and nt/icons/README aren't
|
|
updated either
|
|
. the copyright notices for headers generated by configure.ac and
|
|
exec/configure.ac are not updated as the files already bear notices
|
|
above them
|
|
. the example copyright year in doc/lispref/tips.texi is not updated
|
|
|
|
These files need to be updated by hand, however note that the above list
|
|
is not necessarily exhaustive. For that reason, it's best to grep for
|
|
something like "\<202[0-4]\>" and check any hits manually.
|
|
|
|
Next, run "M-x set-copyright" from admin.el, which updates several
|
|
copyright notices in the Emacs sources.
|
|
|
|
You should also run the etags test suite in test/manual/etags/. It
|
|
will most probably fail because the contents of the test files changes
|
|
due to copyright years update, so you need to move each ETAGS and
|
|
CTAGS file produced by the test runs into the corresponding
|
|
ETAGS.good* and CTAGS.good files, and then commit the new test files.
|
|
|
|
There's no need to worry about whether an individual file has changed
|
|
in a given year - it's sufficient that Emacs as a whole has changed.
|
|
Therefore the years are updated en-masse near the start of each year,
|
|
so basically there is no need for most people to do any updating of them.
|
|
|
|
The refcards in etc/refcards can print only the latest copyright year,
|
|
but should keep the full list in a comment in the source.
|
|
|
|
For more detailed information on maintaining copyright, see the file
|
|
"copyright" in this directory.
|
|
|
|
The previous policy was more complex, but is now only of historical
|
|
interest (see versions of this file from before 2009). In early 2011,
|
|
the years were changed to use ranges. This is OK according to changes
|
|
made to "Information for Maintainers of GNU Software" that same year
|
|
(see that document for more details).
|
|
|
|
|
|
|
|
"Our lawyer says it is ok if we add, to each file that has been in Emacs
|
|
since Emacs 21 came out in 2001, all the subsequent years[1]. We don't
|
|
need to check whether *that file* was changed in those years.
|
|
It's sufficient that *Emacs* was changed in those years (and it was!).
|
|
|
|
For those files that have been added since then, we should add
|
|
the year it was added to Emacs, and all subsequent years."
|
|
|
|
--RMS, 2005-07-13
|
|
|
|
[1] Note that this includes 2001 - see
|
|
<https://lists.gnu.org/r/emacs-pretest-bug/2006-12/msg00119.html>
|