bug-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bison 2010


From: Joel E. Denny
Subject: Re: bison 2010
Date: Thu, 21 Jan 2010 17:28:21 -0500 (EST)
User-agent: Alpine 1.00 (DEB 882 2007-12-20)

On Thu, 21 Jan 2010, Joel E. Denny wrote:

> However, now that you mention it, this ought to be automated like the rest 
> of our copyright updates.  Here's a patch that I'll push later today.  I 
> should rewrite the reminder in HACKING to mention that all copyright 
> updates are automated but should be checked by hand a little anyway.

Below is what I ended up pushing to branch-2.4.2, branch-2.5, and master.  
Relative to the patch I posted earlier, I added improvements to HACKING 
and...

> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -57,9 +57,11 @@ $(top_srcdir)/.version: configure
>  dist-hook:
>       echo $(VERSION) > $(distdir)/.tarball-version
>  
> -.PHONY: update-b4-copyright
> +.PHONY: update-b4-copyright update-configure-copyright

I fixed that typo.  It's update-package-copyright-year not 
update-configure-copyright.

>From af8a609a90c48d1a7e6ea9e31dba4fbad6c7fbed Mon Sep 17 00:00:00 2001
From: Joel E. Denny <address@hidden>
Date: Thu, 21 Jan 2010 12:18:45 -0500
Subject: [PATCH] maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.

* HACKING (Release Procedure): Update notes on copyright years.
* Makefile.am (update-package-copyright-year): New target rule.
* build-aux/update-package-copyright-year: New file.
* cfg.mk (update-copyright): Add update-package-copyright-year
as a dependency.
---
 ChangeLog                               |    9 ++++++
 HACKING                                 |   17 +++++++----
 Makefile.am                             |    4 ++-
 build-aux/update-package-copyright-year |   49 +++++++++++++++++++++++++++++++
 cfg.mk                                  |    2 +-
 configure.ac                            |    4 +-
 6 files changed, 75 insertions(+), 10 deletions(-)
 create mode 100755 build-aux/update-package-copyright-year

diff --git a/ChangeLog b/ChangeLog
index 7201031..54ac2e1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2010-01-21  Joel E. Denny  <address@hidden>
+
+       maint: automate PACKAGE_COPYRIGHT_YEAR update, and update it.
+       * HACKING (Release Procedure): Update notes on copyright years.
+       * Makefile.am (update-package-copyright-year): New target rule.
+       * build-aux/update-package-copyright-year: New file.
+       * cfg.mk (update-copyright): Add update-package-copyright-year
+       as a dependency.
+
 2010-01-19  Joel E. Denny  <address@hidden>
 
        * bootstrap: Import improvements from latest gnulib.
diff --git a/HACKING b/HACKING
index a926fa9..be2e24b 100644
--- a/HACKING
+++ b/HACKING
@@ -210,9 +210,17 @@ causes it to be rejected by recent Gettext releases; 
please report
 these to the Translation Project.
 
 ** Update README
-Make sure the information in this file is current.  Most notably, make sure it
-recommends a version of GNU M4 that is compatible with the latest Bison
-sources.
+Make sure the information in README is current.  Most notably, make sure
+it recommends a version of GNU M4 that is compatible with the latest
+Bison sources.
+
+** Check copyright years.
+We update years in copyright statements throughout Bison once at the
+start of every year by running `make update-copyright'.  However, before
+a release, it's good to verify that it's actually been run.  Besides the
+copyright statement for each Bison file, check the copyright statements
+that the skeletons insert into generated parsers, and check all
+occurrences of PACKAGE_COPYRIGHT_YEAR in configure.ac.
 
 ** Update NEWS
 The version number, *and* the date of the release (including for
@@ -221,9 +229,6 @@ betas).
 ** Update ChangeLog
 Should have an entry similar to `Version 1.49b.'.
 
-** Update configure.ac
-Be sure PACKAGE_COPYRIGHT_YEAR is up-to-date.
-
 ** Tag the release
 Before Bison will build with the right version number, you must tag the release
 in git.  Do this after all other changes.  The command is similar to:
diff --git a/Makefile.am b/Makefile.am
index 8a705de..fcd91a7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -57,9 +57,11 @@ $(top_srcdir)/.version: configure
 dist-hook:
        echo $(VERSION) > $(distdir)/.tarball-version
 
-.PHONY: update-b4-copyright
+.PHONY: update-b4-copyright update-package-copyright-year
 update-b4-copyright:
        find data -type f                    \
          | grep -v -E '^data/bison.m4$$'    \
          | xargs $(build_aux)/$@
        @echo 'warning: src/parse-gram.[hc] may need to be regenerated.'
+update-package-copyright-year:
+       $(build_aux)/$@ configure.ac
diff --git a/build-aux/update-package-copyright-year 
b/build-aux/update-package-copyright-year
new file mode 100755
index 0000000..b5b62e9
--- /dev/null
+++ b/build-aux/update-package-copyright-year
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -0777 -pi
+
+# In configure.ac, update PACKAGE_COPYRIGHT_YEAR to the current year.
+
+# Copyright (C) 2010 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+use strict;
+use warnings;
+
+my $this_year = $ENV{UPDATE_COPYRIGHT_YEAR};
+if (!$this_year || $this_year !~ m/^\d{4}$/)
+  {
+    my ($sec, $min, $hour, $mday, $month, $year) = localtime (time ());
+    $this_year = $year + 1900;
+  }
+my $old_re = <<'EOF'
+  (
+    MACRO\(
+    \[PACKAGE_COPYRIGHT_YEAR],
+    \s*\[
+  )
+  (\d{4})
+  (?=])
+EOF
+  ;
+foreach my $macro ("AC_DEFINE", "AC_SUBST")
+  {
+    my $this_old_re = $old_re;
+    $this_old_re =~ s/MACRO/$macro/;
+    if (!s/$this_old_re/$1$this_year/x)
+      {
+        print STDERR
+          "$ARGV: warning: failed to update PACKAGE_COPYRIGHT_YEAR in"
+          . " $macro.\n";
+      }
+  }
diff --git a/cfg.mk b/cfg.mk
index e8cdfbf..4ecb8e2 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -43,6 +43,6 @@ gnulib_dir = $(srcdir)/../../gnulib
 
 bootstrap-tools = autoconf,automake,flex,gnulib
 
-update-copyright: update-b4-copyright
+update-copyright: update-b4-copyright update-package-copyright-year
 update-copyright-env = \
   UPDATE_COPYRIGHT_FORCE=1 UPDATE_COPYRIGHT_USE_INTERVALS=1
diff --git a/configure.ac b/configure.ac
index 4a66217..3caf935 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,9 +21,9 @@ AC_PREREQ(2.61)
 AC_INIT([GNU Bison],
         m4_esyscmd([build-aux/git-version-gen .tarball-version]),
         address@hidden)
-AC_DEFINE([PACKAGE_COPYRIGHT_YEAR], [2008],
+AC_DEFINE([PACKAGE_COPYRIGHT_YEAR], [2010],
           [The copyright year for this package])
-AC_SUBST([PACKAGE_COPYRIGHT_YEAR], [2008])
+AC_SUBST([PACKAGE_COPYRIGHT_YEAR], [2010])
 
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_MACRO_DIR([m4])
-- 
1.5.4.3





reply via email to

[Prev in Thread] Current Thread [Next in Thread]