[Top][All Lists]
[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