X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=build-aux%2Fannounce-gen;h=d1a4b255ae9d01fc9f4033bcf135bca36e465ff5;hb=a6608a8874c5af8d43904ee8b06c1c65ea284fa1;hp=751ece0dccaa08a27f5e70c3dcff87d4ff7c918c;hpb=ccefc358dd52f025c5f5f3ab3e27efe8c74fd894;p=gnulib.git
diff --git a/build-aux/announce-gen b/build-aux/announce-gen
index 751ece0dc..d1a4b255a 100755
--- a/build-aux/announce-gen
+++ b/build-aux/announce-gen
@@ -1,12 +1,18 @@
#!/usr/bin/perl -w
# Generate a release announcement message.
-# Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+my $VERSION = '2008-12-02 16:28'; # UTC
+# The definition above must lie within the first 8 lines in order
+# for the Emacs time-stamp write hook (at end) to update it.
+# If you change this file with Emacs, please let the write hook
+# do its job. Otherwise, update this string manually.
-# This program is free software; you can redistribute it and/or modify
+# Copyright (C) 2002-2008 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 2, or (at your option)
-# any later version.
+# the Free Software Foundation, either version 3 of the License, 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
@@ -14,8 +20,7 @@
# 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, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+# along with this program. If not, see .
# Written by Jim Meyering
@@ -26,7 +31,6 @@ use Digest::MD5;
use Digest::SHA1;
use POSIX qw(strftime);
-(my $VERSION = '$Revision: 1.2 $ ') =~ tr/[0-9].//cd;
(my $ME = $0) =~ s|.*/||;
my %valid_release_types = map {$_ => 1} qw (alpha beta major);
@@ -88,10 +92,10 @@ 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.
+ --gnulib-version=VERSION report VERSION as the gnulib version, where
+ VERSION is the result of running git describe
+ in the gnulib source directory.
+ required if gnulib is in TOOL_LIST.
--help display this help and exit
--version output version information and exit
@@ -203,7 +207,7 @@ sub print_news_deltas ($$$)
# the first occurrence of $prev_version.
my $in_items;
- my $re_prefix = qr/\* (?:Noteworthy|Major) change/;
+ my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/;
open NEWS, '<', $news_file
or die "$ME: $news_file: cannot open for reading: $!\n";
@@ -323,22 +327,17 @@ sub print_changelog_deltas ($$)
sub get_tool_versions ($$)
{
- my ($bootstrap_tools, $gnulib_snapshot_timestamp) = @_;
- defined $bootstrap_tools
+ my ($tool_list, $gnulib_version) = @_;
+ @$tool_list
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)
+ foreach my $t (@$tool_list)
{
if ($t eq 'gnulib')
{
- push @tool_version_pair,
- "CVS Gnulib sources from $gnulib_snapshot_timestamp";
+ push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version;
next;
}
# Assume that the last "word" on the first line of
@@ -377,7 +376,7 @@ sub get_tool_versions ($$)
my @url_dir_list;
my @news_file;
my $bootstrap_tools;
- my $gnulib_snapshot_timestamp;
+ my $gnulib_version;
GetOptions
(
@@ -389,7 +388,7 @@ sub get_tool_versions ($$)
'url-directory=s' => \@url_dir_list,
'news=s' => \@news_file,
'bootstrap-tools=s' => \$bootstrap_tools,
- 'gnulib-snapshot-time-stamp=s' => \$gnulib_snapshot_timestamp,
+ 'gnulib-version=s' => \$gnulib_version,
help => sub { usage 0 },
version => sub { print "$ME version $VERSION\n"; exit },
@@ -410,20 +409,37 @@ sub get_tool_versions ($$)
@url_dir_list
or (warn "$ME: URL directory name(s) not specified\n"), $fail = 1;
+ my @tool_list = split ',', $bootstrap_tools;
+
+ grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
+ and (warn "$ME: when specifying gnulib as a tool, you must also specify\n"
+ . "--gnulib-version=V, where V is the result of running git describe\n"
+ . "in the gnulib source directory.\n"), $fail = 1;
+
exists $valid_release_types{$release_type}
or (warn "$ME: `$release_type': invalid release type\n"), $fail = 1;
@ARGV
- and (warn "$ME: too many arguments\n"), $fail = 1;
+ and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"),
+ $fail = 1;
$fail
and usage 1;
my $my_distdir = "$package_name-$curr_version";
my $tgz = "$my_distdir.tar.gz";
my $tbz = "$my_distdir.tar.bz2";
+ my $lzma = "$my_distdir.tar.lzma";
+ my $xz = "$my_distdir.tar.xz";
+
my $xd = "$package_name-$prev_version-$curr_version.xdelta";
- my %size = sizes ($tgz, $tbz, $xd);
+ my @tarballs = grep {-f $_} ($tgz, $tbz, $lzma, $xz);
+ @tarballs
+ or die "$ME: none of $tgz, $tbz, $lzma or $xz were found\n";
+ my @sizable = @tarballs;
+ -f $xd
+ and push @sizable, $xd;
+ my %size = sizes (@sizable);
%size
or exit 1;
@@ -439,14 +455,16 @@ FIXME: put comments here
EOF
- print_locations ("compressed sources", @url_dir_list, %size,
- $tgz, $tbz);
- print_locations ("xdelta-style diffs", @url_dir_list, %size,
- $xd);
+ print_locations ("compressed sources", @url_dir_list, %size, @tarballs);
+ -f $xd
+ and print_locations ("xdelta diffs (useful? if so, "
+ . "please tell bug-gnulib\@gnu.org)",
+ @url_dir_list, %size, $xd);
+ my @sig_files = map { "$_.sig" } @tarballs;
print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
- "$tgz.sig", "$tbz.sig");
+ @sig_files);
- print_checksums ($tgz, $tbz, $xd);
+ print_checksums (@sizable);
print <