Hi Peter, thanks for the feedback.
On 05/01/2012 02:23 AM, Peter Johansson wrote:
> Hi Stefano,
>
> Sorry about this late reply.
>
> On 04/28/2012 12:34 AM, Stefano Lattarini wrote:
>
> --- a/bootstrap
> +++ b/bootstrap
> @@ -77,6 +77,8 @@ dosubst ()
> {
> rm -f $2
> in=`echo $1 | sed 's,^.*/,,'`
> + current_year=`date +%Y`&& test -n "$current_year" \
> + || { echo "$me: cannot get current year">&2; exit 1; }
> sed -e "s%@APIVERSION@%$APIVERSION%g" \
> -e "s%@PACKAGE@%$PACKAGE%g" \
> -e "s%@PERL@%$PERL%g" \
> @@ -84,6 +86,7 @@ dosubst ()
> -e "s%@SHELL@%$BOOTSTRAP_SHELL%g" \
> -e "s%@VERSION@%$VERSION%g" \
> -e "s%@datadir@%$datadir%g" \
> + -e "s%@RELEASE_YEAR@%$current_year%g" \
> -e"s%@configure_input@%Generated from $in; do not edit by hand.%g" \
> $1> $2
> chmod a-w $2
> diff --git a/configure.ac b/configure.ac
> index 22a158f..2829fd4 100644
>
>
> IIUC, this implies that if I choose to boostrap Automake 1.12.1, in say,
> five years, $RELEASE_YEAR will be set to 2017.
>
True, but it will be later be reset to 2012 when you run
"./configure && make && make dist", so no big deal.
Though, we might be even nicer, and make bootstrap.sh pre-processed
by "make update-copyright" so that the value of $RELEASE_YEAR will
always be correct, even in the bootstrap phase. This is what I've
done with the attached patch (pushed to maint).
> I'm not an expert on what these copyright years mean [legally], but I
> find this a bit odd as nothing has changed the last five four years
> (depending on when 1.12.1 will be released). In my projects, I've used
> an approach that updates the copyright year only when something is
> modified according to the VCS. With subversion this is trivial and I
> suspect it wouldn't be harder with git. I store this information in
> a separate file, '.release_year', which is extracted at configure time
> although, in theory, it could be done at autoconf time, I guess.
>
> Cheers,
> Peter
Thanks,
Stefano
>From c1c27cf134f49bbe71ae919bf8c39dd9467795b9 Mon Sep 17 00:00:00 2001
Message-Id: <c1c27cf134f49bbe71ae919bf8c39dd9467795b9.1335869119.git.stefano.lattar...@gmail.com>
From: Stefano Lattarini <[email protected]>
Date: Tue, 1 May 2012 12:43:22 +0200
Subject: [PATCH] bootstrap: consistently use correct copyright year
Suggested by Peter Johansson in the discussion about automake bug#11356:
<http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11356#41>
* boostrap.sh (dosubst): Don't initialize the substituted value for the
release year from the current year (using `date +%Y`); instead, do it
through ...
($RELEASE_YEAR): ... this new statically-defined variable. To ensure it
won't get out-of-sync, it will be automatically updated ...
* Makefile.am (update-copyright): ... by this target's recipe.
Since are at it, fix a botched output redirection for an error message,
i.e., use ">&2" instead of ">&1".
Signed-off-by: Stefano Lattarini <[email protected]>
---
Makefile.am | 5 +++--
bootstrap.sh | 7 ++++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 37b44cf..aab2786 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -862,8 +862,9 @@ update_copyright_env = \
update-copyright:
$(AM_V_GEN)set -e; \
current_year=`date +%Y` && test -n "$$current_year" \
- || { echo "$@: cannot get current year" >&1; exit 1; }; \
- sed -i "/^RELEASE_YEAR=/s/=.*$$/=$$current_year/" configure.ac; \
+ || { echo "$@: cannot get current year" >&2; exit 1; }; \
+ sed -i "/^RELEASE_YEAR=/s/=.*$$/=$$current_year/" \
+ bootstrap.sh configure.ac; \
excluded_re=`echo $(FETCHFILES) \
| sed -e 's|^|lib/|' -e 's| | lib/|g' -e 's, ,|,g'`; \
$(GIT) ls-files \
diff --git a/bootstrap.sh b/bootstrap.sh
index 1cede01..683b9e9 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -36,6 +36,9 @@ VERSION=`sed -ne '/AC_INIT/s/^[^[]*\[[^[]*\[\([^]]*\)\].*$/\1/p' configure.ac`
PACKAGE=automake
datadir=.
PERL_THREADS=0
+# This should be automatically updated by the 'update-copyright'
+# rule of our Makefile.
+RELEASE_YEAR=2012
# Override SHELL. This is required on DJGPP so that Perl's system()
# uses bash, not COMMAND.COM which doesn't quote arguments properly.
@@ -77,8 +80,6 @@ dosubst ()
{
rm -f $2
in=`echo $1 | sed 's,^.*/,,'`
- current_year=`date +%Y` && test -n "$current_year" \
- || { echo "$me: cannot get current year" >&2; exit 1; }
sed -e "s%@APIVERSION@%$APIVERSION%g" \
-e "s%@PACKAGE@%$PACKAGE%g" \
-e "s%@PERL@%$PERL%g" \
@@ -86,7 +87,7 @@ dosubst ()
-e "s%@SHELL@%$BOOTSTRAP_SHELL%g" \
-e "s%@VERSION@%$VERSION%g" \
-e "s%@datadir@%$datadir%g" \
- -e "s%@RELEASE_YEAR@%$current_year%g" \
+ -e "s%@RELEASE_YEAR@%$RELEASE_YEAR%G" \
-e "s%@configure_input@%Generated from $in; do not edit by hand.%g" \
$1 > $2
chmod a-w $2
--
1.7.9.5