unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Years in copyright notices
@ 2004-06-17  5:08 Richard Stallman
  2004-06-17 13:13 ` Kim F. Storm
  2004-06-21 20:46 ` Luc Teirlinck
  0 siblings, 2 replies; 15+ messages in thread
From: Richard Stallman @ 2004-06-17  5:08 UTC (permalink / raw)


The latest legal advice I got is that we should not drop the 19 or 20
from year numbers in copyright notices.  There is no need to change
all the existing notices, but the year numbers we add should be
written in 4 digits.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-17  5:08 Years in copyright notices Richard Stallman
@ 2004-06-17 13:13 ` Kim F. Storm
  2004-06-18  2:42   ` Miles Bader
  2004-06-18 21:51   ` Richard Stallman
  2004-06-21 20:46 ` Luc Teirlinck
  1 sibling, 2 replies; 15+ messages in thread
From: Kim F. Storm @ 2004-06-17 13:13 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

> The latest legal advice I got is that we should not drop the 19 or 20
> from year numbers in copyright notices.  There is no need to change
> all the existing notices, but the year numbers we add should be
> written in 4 digits.

Why not do it properly if we are going to fix 04 -> 2004 anyway?


This function seems to do the job (could be added to copyright.el):

(require 'copyright)

;;;###autoload
(defun copyright-fix-years (&optional arg)
  "Convert 2 digit years to 4 digit years in copyright.
With prefix arg, also update copyright.
Uses heuristic: year >= 50 means 19xx, < 50 means 20xx."
  (interactive "P")
  (widen)
  (goto-char (point-min))
  (if (re-search-forward copyright-regexp (+ (point) copyright-limit) t)
      (let ((s (match-beginning 2)) (e (make-marker))
	    last)
	(set-marker e (1+ (match-end 2)))
	(goto-char s)
	(while (and (< (point) (marker-position e))
		    (re-search-forward "\\([^0-9]\\)\\([0-9]+\\)[^0-9]"
				       (marker-position e) t))
	  (let ((p (point))
		(sep (match-string 1))
		(year (string-to-number (match-string 2))))
	    (goto-char (1+ (match-beginning 0)))
	    (unless (= (char-syntax (string-to-char sep)) ?\s)
	      (insert " "))
	    (if (< year 100)
		(insert (if (>= year 50) "19" "20")))
	    (goto-char p)
	    (setq last p)))
	(when last
	  (goto-char last)
	  (fill-region s last)
	  )
	(set-marker e nil)
        (if arg
	    (copyright-update nil t)))
    (message "No copyright message")
    (goto-char (point-min))))


-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-17 13:13 ` Kim F. Storm
@ 2004-06-18  2:42   ` Miles Bader
  2004-06-18 21:51   ` Richard Stallman
  1 sibling, 0 replies; 15+ messages in thread
From: Miles Bader @ 2004-06-18  2:42 UTC (permalink / raw)
  Cc: rms, emacs-devel

On Thu, Jun 17, 2004 at 03:13:47PM +0200, Kim F. Storm wrote:
> > The latest legal advice I got is that we should not drop the 19 or 20
> > from year numbers in copyright notices.  There is no need to change
> > all the existing notices, but the year numbers we add should be
> > written in 4 digits.
> 
> Why not do it properly if we are going to fix 04 -> 2004 anyway?

_Please_ do not do random `cleanups' if they're not really necessary; it
simply makes for more merge conflicts.

-Miles
-- 
Next to fried food, the South has suffered most from oratory.
  			-- Walter Hines Page

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-17 13:13 ` Kim F. Storm
  2004-06-18  2:42   ` Miles Bader
@ 2004-06-18 21:51   ` Richard Stallman
  1 sibling, 0 replies; 15+ messages in thread
From: Richard Stallman @ 2004-06-18 21:51 UTC (permalink / raw)
  Cc: emacs-devel

    This function seems to do the job (could be added to copyright.el):

If nobody sees a problem in it, please install it.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-17  5:08 Years in copyright notices Richard Stallman
  2004-06-17 13:13 ` Kim F. Storm
@ 2004-06-21 20:46 ` Luc Teirlinck
  2004-06-22  5:18   ` Eli Zaretskii
  2004-06-22 23:17   ` Richard Stallman
  1 sibling, 2 replies; 15+ messages in thread
From: Luc Teirlinck @ 2004-06-21 20:46 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman wrote:

   The latest legal advice I got is that we should not drop the 19 or 20
   from year numbers in copyright notices.  There is no need to change
   all the existing notices, but the year numbers we add should be
   written in 4 digits.

What is the exact policy concerning copyright years?  I see that some
people update the copyright years when they make changes, but
apparently most people do not.  Are copyright years automatically
updated from CVS data when a release is made?

Sincerely,

Luc.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-21 20:46 ` Luc Teirlinck
@ 2004-06-22  5:18   ` Eli Zaretskii
  2004-06-22 23:17   ` Richard Stallman
  1 sibling, 0 replies; 15+ messages in thread
From: Eli Zaretskii @ 2004-06-22  5:18 UTC (permalink / raw)
  Cc: emacs-devel

> Date: Mon, 21 Jun 2004 15:46:45 -0500 (CDT)
> From: Luc Teirlinck <teirllm@dms.auburn.edu>
> 
> I see that some people update the copyright years when they make
> changes, but apparently most people do not.

The rule is that the copyright years should include any year during
which changes were done to a file that are still present when the
package is released.

That means, theoretically, that if a file mumble.el was modified in
the year 2003, but that change was taken out before the file was
released with the next Emacs version, the year 2003 does not need to
appear.  But in practice, the only good way is to make sure, when you
modify a file, that the current year is in the list.

> Are copyright years automatically updated from CVS data when a
> release is made?

No, maintainers are supposed to do that when they install changes.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-21 20:46 ` Luc Teirlinck
  2004-06-22  5:18   ` Eli Zaretskii
@ 2004-06-22 23:17   ` Richard Stallman
  2004-06-23  7:09     ` Jan D.
  2004-06-23  8:08     ` Kim F. Storm
  1 sibling, 2 replies; 15+ messages in thread
From: Richard Stallman @ 2004-06-22 23:17 UTC (permalink / raw)
  Cc: emacs-devel

    What is the exact policy concerning copyright years?  I see that some
    people update the copyright years when they make changes, but
    apparently most people do not.  Are copyright years automatically
    updated from CVS data when a release is made?

We need to update the copyright years for all the files.

One reason we don't always add a year when making a change is that we
don't add a year when only small changes are made during that year.
That means that people making small changes in a file often don't
check to see whether the changes in the current year are enough to
justify adding the year.

Does anyone want to help in this process of adding the years
that should be added?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-22 23:17   ` Richard Stallman
@ 2004-06-23  7:09     ` Jan D.
  2004-06-24 23:48       ` Richard Stallman
  2004-06-23  8:08     ` Kim F. Storm
  1 sibling, 1 reply; 15+ messages in thread
From: Jan D. @ 2004-06-23  7:09 UTC (permalink / raw)
  Cc: Luc Teirlinck, emacs-devel

> One reason we don't always add a year when making a change is that we
> don't add a year when only small changes are made during that year.
> That means that people making small changes in a file often don't
> check to see whether the changes in the current year are enough to
> justify adding the year.

What is a "small change", 3-4 lines changed?  And do many small changes
eventually become a big change that needs to change the year?

> Does anyone want to help in this process of adding the years
> that should be added?

Is it enough to compare the file now with the version for the previous
year and count changed and added lines, or is a more manual comparison
needed?

	Jan D.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-22 23:17   ` Richard Stallman
  2004-06-23  7:09     ` Jan D.
@ 2004-06-23  8:08     ` Kim F. Storm
  2004-06-23  8:22       ` Miles Bader
  2004-06-23 22:39       ` Kevin Ryde
  1 sibling, 2 replies; 15+ messages in thread
From: Kim F. Storm @ 2004-06-23  8:08 UTC (permalink / raw)
  Cc: emacs-devel

Richard Stallman <rms@gnu.org> writes:

>     What is the exact policy concerning copyright years?  I see that some
>     people update the copyright years when they make changes, but
>     apparently most people do not.  Are copyright years automatically
>     updated from CVS data when a release is made?
> 
> We need to update the copyright years for all the files.
> 
> One reason we don't always add a year when making a change is that we
> don't add a year when only small changes are made during that year.
> That means that people making small changes in a file often don't
> check to see whether the changes in the current year are enough to
> justify adding the year.
> 
> Does anyone want to help in this process of adding the years
> that should be added?

If we just want to document the years that have any changes at all
(i.e. not differentiate between small and big changes), it is a fairly
easy task to accomplish (and automate) --

For each file do:

1) cvs update FILE
2) cvs log FILE
3) find the YEAR of each log entry and put it into a list
   (if not already there)
4) sort the list
5) update the copyright in FILE using that list
6) cvs commit -m"Updated copyright years" FILE

In the process, all 2-digit years would be converted into 4-digit
years.

Of course, step 5 and 6 should be avoided if the current list of
years in FILE is already correct.

A Miles pointed out, this will lead to some merge conflicts, but since
this is legal stuff, we have to accept that inconvenience.

I can do this if you approve.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-23  8:08     ` Kim F. Storm
@ 2004-06-23  8:22       ` Miles Bader
  2004-06-23  9:58         ` Kim F. Storm
  2004-06-24 23:48         ` Richard Stallman
  2004-06-23 22:39       ` Kevin Ryde
  1 sibling, 2 replies; 15+ messages in thread
From: Miles Bader @ 2004-06-23  8:22 UTC (permalink / raw)
  Cc: rms, emacs-devel

On Wed, Jun 23, 2004 at 10:08:41AM +0200, Kim F. Storm wrote:
> A Miles pointed out, this will lead to some merge conflicts, but since
> this is legal stuff, we have to accept that inconvenience.

Richard's post indicated that we do _not_ have to `accept that
inconvenience', that it isn't a critical point.

> I can do this if you approve.

Making sure the copyright notices include the appropriate years is reasonable
-- and probably won't result in all that many problems because many files are
already up-to-date -- but changing the date format is apparently not
necessary (according to Richard's post), and will result in many more
conflicts.

-Miles
-- 
Any man who is a triangle, has thee right, when in Cartesian Space, to
have angles, which when summed, come to know more, nor no less, than
nine score degrees, should he so wish.  [TEMPLE OV THEE LEMUR]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-23  8:22       ` Miles Bader
@ 2004-06-23  9:58         ` Kim F. Storm
  2004-06-24 23:48         ` Richard Stallman
  1 sibling, 0 replies; 15+ messages in thread
From: Kim F. Storm @ 2004-06-23  9:58 UTC (permalink / raw)
  Cc: rms, emacs-devel

Miles Bader <miles@gnu.org> writes:

> On Wed, Jun 23, 2004 at 10:08:41AM +0200, Kim F. Storm wrote:
> > A Miles pointed out, this will lead to some merge conflicts, but since
> > this is legal stuff, we have to accept that inconvenience.
> 
> Richard's post indicated that we do _not_ have to `accept that
> inconvenience', that it isn't a critical point.

Right, but if we make an effort to bring this fully up-to-date,
I suggest that we can just as well use the proper format.

> Making sure the copyright notices include the appropriate years is reasonable
> -- and probably won't result in all that many problems because many files are
> already up-to-date -- but changing the date format is apparently not
> necessary (according to Richard's post), and will result in many more
> conflicts.

Still, it will only result in conflicts in the files where you actually
did update the copyright notice on the branch.  If you didn't do that,
there will be no conflicts.

To me it doesn't make much sense to update the copyright on a "feature"
branch, as it is likely to conflict with updates on the trunk.  

Some users have copyright-update in the save-buffer-hook, so maybe
copyright-update should query vc to know if it's working on a branch
and not do any update in that situation (or at least query the user).

Of course, we also have release branches for maintenance releases,
and we should update copyrights on those branches -- but then we
normally don't merge to/from such branches.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-23  8:08     ` Kim F. Storm
  2004-06-23  8:22       ` Miles Bader
@ 2004-06-23 22:39       ` Kevin Ryde
  1 sibling, 0 replies; 15+ messages in thread
From: Kevin Ryde @ 2004-06-23 22:39 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 580 bytes --]

storm@cua.dk (Kim F. Storm) writes:
>
> (and automate)

In the past I used the script below on the gmp cvs, grepping the
output of cvs log.  It's probably bit rotted somewhat, but may give
some ideas.  The output from cvs log is normally big so you either
need to be on the repo machine or somewhere close.

I never wanted it to actually change files, just report apparently
missing years, to be checked manually.  Because eg. something later
reverted doesn't need to appear, an initial checkin from an external
source isn't a change, a complete rewrite restarts the years, etc.


[-- Attachment #2: copyrightyears --]
[-- Type: text/plain, Size: 2734 bytes --]

#!/bin/sh
#
# Look for cvs log entries with years not in the file's copyright notice.
#
# Run this in a cvs working directory.
#
# Bug: All log entries are examined, not just those belonging to the
# branch of the working directory.

years() {
  # years in the log file, one only of each
  cvs log "$1" 2>/dev/null | awk '

# Ignore the change to LGPL 2.1.
/^date: 2000\/07\/24 17:04:[0-9][0-9];  author: tege;  state: Exp;  lines: \+4 -4/ {
  next
}

/^date: / {
  sub(/date: /,"")
  sub(/\/.*$/,"")

  if (getline s) {

    # stop at a rewrite or replacement
    # FIXME: Not sure if these pick up too much
    if (s ~ /Rewrite[.,]/ ||
        s ~ /New file/) {
      exit
    }

    # skip log messages consisting solely of any of these
    if (s == "Add a copyright year." ||
        s == "Update copyright year." ||
        s == "Add missing copyright headers." ||
        s == "Add copyright." ||
	s == "Fix a typo in a comment." ||
	s == "Copyright (C) -> Copyright.") {
      if (getline s) {
	if (s == "----------------------------")
	  next
      }
    }
  }

  if ($0 == 1996)
    seen1996++
  else
    print
}

END {
  # 2 entries for 1996 are taken to be the initial cvs checkin, and not
  # reported
  if (seen1996 > 2)
    print 1996
}' | sort -u

  # years in the file, duplicated
  awk '
/Copyright/,/^(#|dnl)?$/ {
  for (i=1;i<=NF;i++) {
    if ($i ~ /^[0-9]/) {
      s = $i
      sub(/,/,"",s)
      print s
      print s
    }
  }
}' "$1"
}


one() {
  # files which by convention don't have copyright notices in them
  case `basename "$1"` in
  stamp-vti		\
  | unix2mac		\
  | version.texi	\
  ) return ;;
  esac

  # files which aren't distributed, so don't matter
  case `basename "$1"` in
  .cvsignore		\
  ) return ;;
  esac

  # files that come from elsewhere and don't have to match the gmp cvs entries
  case `basename "$1"` in
  COPYING		\
  | COPYING.LIB		\
  | ansi2knr.c		\
  | ansi2knr.1		\
  | config.guess        \
  | config.sub          \
  | depcomp		\
  | INSTALL.autoconf    \
  | install-sh		\
  | ltconfig		\
  | ltmain.sh		\
  | mdate-sh		\
  | missing		\
  | mkinstalldirs	\
  | texinfo.tex		\
  ) return ;;
  esac

  # generated files that lose their copyright notices
  case `basename "$1"` in
  calc.c		\
  | calc.h		\
  ) return ;;
  esac

  # With the cvs years printed once but the file years printed twice,
  # the effect of uniq -u here is to print years that are in the cvs
  # but not in the file.
  #
  M=`years "$1" | sort | uniq -u`
  if [ -n "$M" ]
  then
    echo "$1: $M"
  fi   
}

files() {
  find -type f | awk '
!/\/CVS\// { print }'
}

if [ $# = 0 ]
then
  set .
fi

echo "Processing $*"

for d in "$@"
do
  for i in `find "$d" -type f`
  do
    one "$i"
  done
done

[-- Attachment #3: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-23  7:09     ` Jan D.
@ 2004-06-24 23:48       ` Richard Stallman
  0 siblings, 0 replies; 15+ messages in thread
From: Richard Stallman @ 2004-06-24 23:48 UTC (permalink / raw)
  Cc: teirllm, emacs-devel

    What is a "small change", 3-4 lines changed?  And do many small changes
    eventually become a big change that needs to change the year?

I think the threshold should be 10 lines of new code, the same as the
threshold for needing legal papers.  If over 10 to 15 lines of new
code have been introduced in a file during a year, that year should be
mentioned.

This is the situation now that we have an accessible CVS repository,
so that every version of every file is always released.  In the past,
the situation was different; years in which there was no release did
not count, and the changes in those years all counted towards the year
of the following release.

    Is it enough to compare the file now with the version for the previous
    year and count changed and added lines,

It would do no harm to handle it this way.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-23  8:22       ` Miles Bader
  2004-06-23  9:58         ` Kim F. Storm
@ 2004-06-24 23:48         ` Richard Stallman
  2004-06-25  0:03           ` Miles Bader
  1 sibling, 1 reply; 15+ messages in thread
From: Richard Stallman @ 2004-06-24 23:48 UTC (permalink / raw)
  Cc: emacs-devel, storm

    already up-to-date -- but changing the date format is apparently not
    necessary (according to Richard's post), and will result in many more
    conflicts.

When we are changing a copyright notice, we should take the opportunity
to add the centuries where those are missing.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: Years in copyright notices
  2004-06-24 23:48         ` Richard Stallman
@ 2004-06-25  0:03           ` Miles Bader
  0 siblings, 0 replies; 15+ messages in thread
From: Miles Bader @ 2004-06-25  0:03 UTC (permalink / raw)
  Cc: storm, emacs-devel, Miles Bader

On Thu, Jun 24, 2004 at 07:48:10PM -0400, Richard Stallman wrote:
>     already up-to-date -- but changing the date format is apparently not
>     necessary (according to Richard's post), and will result in many more
>     conflicts.
> 
> When we are changing a copyright notice, we should take the opportunity
> to add the centuries where those are missing.

Of course, but Kim's proposal seemed to include adding the centuries even to
those copyright notices that _don't_ otherwise need changing (which is many).

-Miles
-- 
/\ /\
(^.^)
(")")
*This is the cute kitty virus, please copy this into your sig so it can spread.

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2004-06-25  0:03 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-17  5:08 Years in copyright notices Richard Stallman
2004-06-17 13:13 ` Kim F. Storm
2004-06-18  2:42   ` Miles Bader
2004-06-18 21:51   ` Richard Stallman
2004-06-21 20:46 ` Luc Teirlinck
2004-06-22  5:18   ` Eli Zaretskii
2004-06-22 23:17   ` Richard Stallman
2004-06-23  7:09     ` Jan D.
2004-06-24 23:48       ` Richard Stallman
2004-06-23  8:08     ` Kim F. Storm
2004-06-23  8:22       ` Miles Bader
2004-06-23  9:58         ` Kim F. Storm
2004-06-24 23:48         ` Richard Stallman
2004-06-25  0:03           ` Miles Bader
2004-06-23 22:39       ` Kevin Ryde

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).