emacs/admin/notes/years

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>