summaryrefslogtreecommitdiff
path: root/build-aux/announce-gen
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2006-12-08 09:28:23 +0000
committerJim Meyering <jim@meyering.net>2006-12-08 09:28:23 +0000
commitccefc358dd52f025c5f5f3ab3e27efe8c74fd894 (patch)
tree599f8ea3fdf1e76e25c69a81ab7766a13307f41a /build-aux/announce-gen
parent020b4c764b33c3559508876b54a86aac3ed552d2 (diff)
downloadgnulib-ccefc358dd52f025c5f5f3ab3e27efe8c74fd894.tar.gz
* build-aux/announce-gen: Add two new options, both optional:
--bootstrap-tools=TOOL_LIST a comma-separated list of tools, e.g., autoconf,automake,bison,gnulib --gnulib-snapshot-date=DATE if gnulib is in the bootstrap tool list, then report this as the snapshot date. If not specified, use the current date/time. If you specify a date here, be sure it's UTC.
Diffstat (limited to 'build-aux/announce-gen')
-rwxr-xr-xbuild-aux/announce-gen69
1 files changed, 66 insertions, 3 deletions
diff --git a/build-aux/announce-gen b/build-aux/announce-gen
index 039edaf3bb..751ece0dcc 100755
--- a/build-aux/announce-gen
+++ b/build-aux/announce-gen
@@ -24,8 +24,9 @@ use strict;
use Getopt::Long;
use Digest::MD5;
use Digest::SHA1;
+use POSIX qw(strftime);
-(my $VERSION = '$Revision: 1.1 $ ') =~ tr/[0-9].//cd;
+(my $VERSION = '$Revision: 1.2 $ ') =~ tr/[0-9].//cd;
(my $ME = $0) =~ s|.*/||;
my %valid_release_types = map {$_ => 1} qw (alpha beta major);
@@ -73,7 +74,7 @@ OPTIONS:
Generate an announcement message.
- FIXME: describe the following
+These options must be specified:
--release-type=TYPE TYPE must be one of @types
--package-name=PACKAGE_NAME
@@ -81,7 +82,16 @@ OPTIONS:
--current-version=VER
--gpg-key-id=ID The GnuPG ID of the key used to sign the tarballs
--url-directory=URL_DIR
- --news=NEWS_FILE optional
+
+The following are optional:
+
+ --news=NEWS_FILE
+ --bootstrap-tools=TOOL_LIST a comma-separated list of tools, e.g.,
+ autoconf,automake,bison,gnulib
+ --gnulib-snapshot-date=DATE if gnulib is in the bootstrap tool list,
+ then report this as the snapshot date.
+ If not specified, use the current date/time.
+ If you specify a date here, be sure it's UTC.
--help display this help and exit
--version output version information and exit
@@ -311,6 +321,49 @@ sub print_changelog_deltas ($$)
or warn "$ME: warning: `cmd' had unexpected exit code or signal ($?)\n";
}
+sub get_tool_versions ($$)
+{
+ my ($bootstrap_tools, $gnulib_snapshot_timestamp) = @_;
+ defined $bootstrap_tools
+ or return ();
+
+ defined $gnulib_snapshot_timestamp
+ or $gnulib_snapshot_timestamp = strftime '%Y-%m-%d %T UTC', gmtime;
+
+ my $fail;
+ my @tool_list = split ',', $bootstrap_tools;
+ my @tool_version_pair;
+ foreach my $t (@tool_list)
+ {
+ if ($t eq 'gnulib')
+ {
+ push @tool_version_pair,
+ "CVS Gnulib sources from $gnulib_snapshot_timestamp";
+ next;
+ }
+ # Assume that the last "word" on the first line of
+ # `tool --version` output is the version string.
+ my ($first_line, undef) = split ("\n", `$t --version`);
+ if ($first_line =~ /.* (\d[\w.-]+)$/)
+ {
+ $t = ucfirst $t;
+ push @tool_version_pair, "$t $1";
+ }
+ else
+ {
+ defined $first_line
+ and $first_line = '';
+ warn "$ME: $t: unexpected --version output\n:$first_line";
+ $fail = 1;
+ }
+ }
+
+ $fail
+ and exit 1;
+
+ return @tool_version_pair;
+}
+
{
# Neutralize the locale, so that, for instance, "du" does not
# issue "1,2" instead of "1.2", what confuses our regexps.
@@ -323,6 +376,8 @@ sub print_changelog_deltas ($$)
my $gpg_key_id;
my @url_dir_list;
my @news_file;
+ my $bootstrap_tools;
+ my $gnulib_snapshot_timestamp;
GetOptions
(
@@ -333,6 +388,8 @@ sub print_changelog_deltas ($$)
'gpg-key-id=s' => \$gpg_key_id,
'url-directory=s' => \@url_dir_list,
'news=s' => \@news_file,
+ 'bootstrap-tools=s' => \$bootstrap_tools,
+ 'gnulib-snapshot-time-stamp=s' => \$gnulib_snapshot_timestamp,
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
@@ -408,6 +465,12 @@ then run this command to import it:
and rerun the \`gpg --verify' command.
EOF
+ my @tool_versions = get_tool_versions ($bootstrap_tools,
+ $gnulib_snapshot_timestamp);
+ @tool_versions
+ and print "\nThis release was bootstrapped with the following tools:",
+ join ('', map {"\n $_"} @tool_versions), "\n";
+
print_news_deltas ($_, $prev_version, $curr_version)
foreach @news_file;