annotate build-aux/announce-gen @ 7716:f2d3357d1ce7

* 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.
author Jim Meyering <jim@meyering.net>
date Fri, 08 Dec 2006 09:28:23 +0000
parents 89b16a28419e
children 605d4ddb5673
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
1 #!/usr/bin/perl -w
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
2 # Generate a release announcement message.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
4 # Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
5
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
6 # This program is free software; you can redistribute it and/or modify
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
7 # it under the terms of the GNU General Public License as published by
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
8 # the Free Software Foundation; either version 2, or (at your option)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
9 # any later version.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
10
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
11 # This program is distributed in the hope that it will be useful,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
14 # GNU General Public License for more details.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
15
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
16 # You should have received a copy of the GNU General Public License
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
17 # along with this program; if not, write to the Free Software Foundation,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
18 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
19
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
20 # Written by Jim Meyering
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
22 use strict;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
23
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
24 use Getopt::Long;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
25 use Digest::MD5;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
26 use Digest::SHA1;
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
27 use POSIX qw(strftime);
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
28
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
29 (my $VERSION = '$Revision: 1.2 $ ') =~ tr/[0-9].//cd;
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
30 (my $ME = $0) =~ s|.*/||;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
31
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
32 my %valid_release_types = map {$_ => 1} qw (alpha beta major);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
33
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
34 END
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
35 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
36 # Nobody ever checks the status of print()s. That's okay, because
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
37 # if any do fail, we're guaranteed to get an indicator when we close()
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
38 # the filehandle.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
39 #
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
40 # Close stdout now, and if there were no errors, return happy status.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
41 # If stdout has already been closed by the script, though, do nothing.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 defined fileno STDOUT
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 or return;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
44 close STDOUT
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
45 and return;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47 # Errors closing stdout. Indicate that, and hope stderr is OK.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48 warn "$ME: closing standard output: $!\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
49
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
50 # Don't be so arrogant as to assume that we're the first END handler
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 # defined, and thus the last one invoked. There may be others yet
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 # to come. $? will be passed on to them, and to the final _exit().
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 #
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
54 # If it isn't already an error, make it one (and if it _is_ an error,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
55 # preserve the value: it might be important).
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
56 $? ||= 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
59 sub usage ($)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
60 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61 my ($exit_code) = @_;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
62 my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
63 if ($exit_code != 0)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
64 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
65 print $STREAM "Try `$ME --help' for more information.\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
66 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
67 else
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
68 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
69 my @types = sort keys %valid_release_types;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
70 print $STREAM <<EOF;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
71 Usage: $ME [OPTIONS]
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
72
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
73 OPTIONS:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
74
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
75 Generate an announcement message.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
76
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
77 These options must be specified:
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
78
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
79 --release-type=TYPE TYPE must be one of @types
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
80 --package-name=PACKAGE_NAME
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
81 --previous-version=VER
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
82 --current-version=VER
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
83 --gpg-key-id=ID The GnuPG ID of the key used to sign the tarballs
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
84 --url-directory=URL_DIR
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
85
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
86 The following are optional:
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
87
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
88 --news=NEWS_FILE
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
89 --bootstrap-tools=TOOL_LIST a comma-separated list of tools, e.g.,
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
90 autoconf,automake,bison,gnulib
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
91 --gnulib-snapshot-date=DATE if gnulib is in the bootstrap tool list,
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
92 then report this as the snapshot date.
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
93 If not specified, use the current date/time.
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
94 If you specify a date here, be sure it's UTC.
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
95
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
96 --help display this help and exit
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
97 --version output version information and exit
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
98
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
99 EOF
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
100 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
101 exit $exit_code;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
102 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
103
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
104
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
105 =item C<%size> = C<sizes (@file)>
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
106
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
107 Compute the sizes of the C<@file> and return them as a hash. Return
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
108 C<undef> if one of the computation failed.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
109
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
110 =cut
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
111
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
112 sub sizes (@)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
113 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
114 my (@file) = @_;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
115
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
116 my $fail = 0;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
117 my %res;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
118 foreach my $f (@file)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
119 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
120 my $cmd = "du --human $f";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
121 my $t = `$cmd`;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
122 # FIXME-someday: give a better diagnostic, a la $PROCESS_STATUS
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
123 $@
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
124 and (warn "$ME: command failed: `$cmd'\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
125 chomp $t;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
126 $t =~ s/^([\d.]+[MkK]).*/${1}B/;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
127 $res{$f} = $t;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
128 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
129 return $fail ? undef : %res;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
130 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
131
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
132 =item C<print_locations ($title, \@url, \%size, @file)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
133
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
134 Print a section C<$title> dedicated to the list of <@file>, which
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
135 sizes are stored in C<%size>, and which are available from the C<@url>.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
136
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
137 =cut
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
138
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
139 sub print_locations ($\@\%@)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
140 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
141 my ($title, $url, $size, @file) = @_;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
142 print "Here are the $title:\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
143 foreach my $url (@{$url})
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
144 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
145 for my $file (@file)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
146 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
147 print " $url/$file";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
148 print " (", $$size{$file}, ")"
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
149 if exists $$size{$file};
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
150 print "\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
151 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
152 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
153 print "\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
154 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
155
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
156 =item C<print_checksums (@file)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
157
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
158 Print the MD5 and SHA1 signature section for each C<@file>.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
159
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
160 =cut
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
161
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
162 sub print_checksums (@)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
163 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
164 my (@file) = @_;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
165
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
166 print "Here are the MD5 and SHA1 checksums:\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
167 print "\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
168
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
169 foreach my $meth (qw (md5 sha1))
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
170 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
171 foreach my $f (@file)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
172 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
173 open IN, '<', $f
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
174 or die "$ME: $f: cannot open for reading: $!\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
175 binmode IN;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
176 my $dig =
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
177 ($meth eq 'md5'
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
178 ? Digest::MD5->new->addfile(*IN)->hexdigest
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
179 : Digest::SHA1->new->addfile(*IN)->hexdigest);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
180 close IN;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
181 print "$dig $f\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
182 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
183 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
184
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
185
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
186 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
187
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
188 =item C<print_news_deltas ($news_file, $prev_version, $curr_version)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
189
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
190 Print the section of the NEWS file C<$news_file> addressing changes
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
191 between versions C<$prev_version> and C<$curr_version>.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
192
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
193 =cut
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
194
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
195 sub print_news_deltas ($$$)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
196 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
197 my ($news_file, $prev_version, $curr_version) = @_;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
198
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
199 print "\n$news_file\n\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
200
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
201 # Print all lines from $news_file, starting with the first one
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
202 # that mentions $curr_version up to but not including
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
203 # the first occurrence of $prev_version.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
204 my $in_items;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
205
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
206 my $re_prefix = qr/\* (?:Noteworthy|Major) change/;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
207
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
208 open NEWS, '<', $news_file
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
209 or die "$ME: $news_file: cannot open for reading: $!\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
210 while (defined (my $line = <NEWS>))
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
211 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
212 if ( ! $in_items)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
213 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
214 # Match lines like these:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
215 # * Major changes in release 5.0.1:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
216 # * Noteworthy changes in release 6.6 (2006-11-22) [stable]
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
217 $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
218 or next;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
219 $in_items = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
220 print $line;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
221 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
222 else
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
223 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
224 # This regexp must not match version numbers in NEWS items.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
225 # For example, they might well say `introduced in 4.5.5',
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
226 # and we don't want that to match.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
227 $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
228 and last;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
229 print $line;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
230 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
231 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
232 close NEWS;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
233
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
234 $in_items
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
235 or die "$ME: $news_file: no matching lines for `$curr_version'\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
236 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
237
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
238 sub print_changelog_deltas ($$)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
239 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
240 my ($package_name, $prev_version) = @_;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
241
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
242 # Print new ChangeLog entries.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
243
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
244 # First find all CVS-controlled ChangeLog files.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
245 use File::Find;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
246 my @changelog;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
247 find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS'
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
248 and push @changelog, $File::Find::name}},
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
249 '.');
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
250
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
251 # If there are no ChangeLog files, we're done.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
252 @changelog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
253 or return;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
254 my %changelog = map {$_ => 1} @changelog;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
255
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
256 # Reorder the list of files so that if there are ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
257 # files in the specified directories, they're listed first,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
258 # in this order:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
259 my @dir = qw ( . src lib m4 config doc );
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
260
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
261 # A typical @changelog array might look like this:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
262 # ./ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
263 # ./po/ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
264 # ./m4/ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
265 # ./lib/ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
266 # ./doc/ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
267 # ./config/ChangeLog
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
268 my @reordered;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
269 foreach my $d (@dir)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
270 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
271 my $dot_slash = $d eq '.' ? $d : "./$d";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
272 my $target = "$dot_slash/ChangeLog";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
273 delete $changelog{$target}
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
274 and push @reordered, $target;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
275 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
276
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
277 # Append any remaining ChangeLog files.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
278 push @reordered, sort keys %changelog;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
279
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
280 # Remove leading `./'.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
281 @reordered = map { s!^\./!!; $_ } @reordered;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
282
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
283 print "\nChangeLog entries:\n\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
284 # print join ("\n", @reordered), "\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
285
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
286 $prev_version =~ s/\./_/g;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
287 my $prev_cvs_tag = "\U$package_name\E-$prev_version";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
288
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
289 my $cmd = "cvs -n diff -u -r$prev_cvs_tag -rHEAD @reordered";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
290 open DIFF, '-|', $cmd
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
291 or die "$ME: cannot run `$cmd': $!\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
292 # Print two types of lines, making minor changes:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
293 # Lines starting with `+++ ', e.g.,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
294 # +++ ChangeLog 22 Feb 2003 16:52:51 -0000 1.247
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
295 # and those starting with `+'.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
296 # Don't print the others.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
297 my $prev_printed_line_empty = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
298 while (defined (my $line = <DIFF>))
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
299 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
300 if ($line =~ /^\+\+\+ /)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
301 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
302 my $separator = "*"x70 ."\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
303 $line =~ s///;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
304 $line =~ s/\s.*//;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
305 $prev_printed_line_empty
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
306 or print "\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
307 print $separator, $line, $separator;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
308 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
309 elsif ($line =~ /^\+/)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
310 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
311 $line =~ s///;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
312 print $line;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
313 $prev_printed_line_empty = ($line =~ /^$/);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
314 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
315 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
316 close DIFF;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
317
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
318 # The exit code should be 1.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
319 # Allow in case there are no modified ChangeLog entries.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
320 $? == 256 || $? == 128
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
321 or warn "$ME: warning: `cmd' had unexpected exit code or signal ($?)\n";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
322 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
323
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
324 sub get_tool_versions ($$)
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
325 {
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
326 my ($bootstrap_tools, $gnulib_snapshot_timestamp) = @_;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
327 defined $bootstrap_tools
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
328 or return ();
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
329
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
330 defined $gnulib_snapshot_timestamp
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
331 or $gnulib_snapshot_timestamp = strftime '%Y-%m-%d %T UTC', gmtime;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
332
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
333 my $fail;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
334 my @tool_list = split ',', $bootstrap_tools;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
335 my @tool_version_pair;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
336 foreach my $t (@tool_list)
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
337 {
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
338 if ($t eq 'gnulib')
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
339 {
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
340 push @tool_version_pair,
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
341 "CVS Gnulib sources from $gnulib_snapshot_timestamp";
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
342 next;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
343 }
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
344 # Assume that the last "word" on the first line of
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
345 # `tool --version` output is the version string.
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
346 my ($first_line, undef) = split ("\n", `$t --version`);
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
347 if ($first_line =~ /.* (\d[\w.-]+)$/)
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
348 {
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
349 $t = ucfirst $t;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
350 push @tool_version_pair, "$t $1";
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
351 }
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
352 else
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
353 {
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
354 defined $first_line
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
355 and $first_line = '';
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
356 warn "$ME: $t: unexpected --version output\n:$first_line";
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
357 $fail = 1;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
358 }
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
359 }
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
360
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
361 $fail
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
362 and exit 1;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
363
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
364 return @tool_version_pair;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
365 }
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
366
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
367 {
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
368 # Neutralize the locale, so that, for instance, "du" does not
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
369 # issue "1,2" instead of "1.2", what confuses our regexps.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
370 $ENV{LC_ALL} = "C";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
371
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
372 my $release_type;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
373 my $package_name;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
374 my $prev_version;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
375 my $curr_version;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
376 my $gpg_key_id;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
377 my @url_dir_list;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
378 my @news_file;
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
379 my $bootstrap_tools;
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
380 my $gnulib_snapshot_timestamp;
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
381
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
382 GetOptions
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
383 (
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
384 'release-type=s' => \$release_type,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
385 'package-name=s' => \$package_name,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
386 'previous-version=s' => \$prev_version,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
387 'current-version=s' => \$curr_version,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
388 'gpg-key-id=s' => \$gpg_key_id,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
389 'url-directory=s' => \@url_dir_list,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
390 'news=s' => \@news_file,
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
391 'bootstrap-tools=s' => \$bootstrap_tools,
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
392 'gnulib-snapshot-time-stamp=s' => \$gnulib_snapshot_timestamp,
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
393
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
394 help => sub { usage 0 },
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
395 version => sub { print "$ME version $VERSION\n"; exit },
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
396 ) or usage 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
397
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
398 my $fail = 0;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
399 # Ensure that sure each required option is specified.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
400 $release_type
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
401 or (warn "$ME: release type not specified\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
402 $package_name
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
403 or (warn "$ME: package name not specified\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
404 $prev_version
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
405 or (warn "$ME: previous version string not specified\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
406 $curr_version
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
407 or (warn "$ME: current version string not specified\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
408 $gpg_key_id
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
409 or (warn "$ME: GnuPG key ID not specified\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
410 @url_dir_list
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
411 or (warn "$ME: URL directory name(s) not specified\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
412
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
413 exists $valid_release_types{$release_type}
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
414 or (warn "$ME: `$release_type': invalid release type\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
415
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
416 @ARGV
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
417 and (warn "$ME: too many arguments\n"), $fail = 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
418 $fail
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
419 and usage 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
420
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
421 my $my_distdir = "$package_name-$curr_version";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
422 my $tgz = "$my_distdir.tar.gz";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
423 my $tbz = "$my_distdir.tar.bz2";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
424 my $xd = "$package_name-$prev_version-$curr_version.xdelta";
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
425
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
426 my %size = sizes ($tgz, $tbz, $xd);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
427 %size
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
428 or exit 1;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
429
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
430 # The markup is escaped as <\# so that when this script is sent by
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
431 # mail (or part of a diff), Gnus is not triggered.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
432 print <<EOF;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
433
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
434 Subject: $my_distdir released
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
435
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
436 <\#secure method=pgpmime mode=sign>
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
437
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
438 FIXME: put comments here
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
439
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
440 EOF
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
441
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
442 print_locations ("compressed sources", @url_dir_list, %size,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
443 $tgz, $tbz);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
444 print_locations ("xdelta-style diffs", @url_dir_list, %size,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
445 $xd);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
446 print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
447 "$tgz.sig", "$tbz.sig");
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
448
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
449 print_checksums ($tgz, $tbz, $xd);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
450
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
451 print <<EOF;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
452
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
453 [*] You can use either of the above signature files to verify that
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
454 the corresponding file (without the .sig suffix) is intact. First,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
455 be sure to download both the .sig file and the corresponding tarball.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
456 Then, run a command like this:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
457
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
458 gpg --verify $tgz.sig
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
459
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
460 If that command fails because you don't have the required public key,
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
461 then run this command to import it:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
462
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
463 gpg --keyserver wwwkeys.pgp.net --recv-keys $gpg_key_id
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
464
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
465 and rerun the \`gpg --verify' command.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
466 EOF
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
467
7716
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
468 my @tool_versions = get_tool_versions ($bootstrap_tools,
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
469 $gnulib_snapshot_timestamp);
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
470 @tool_versions
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
471 and print "\nThis release was bootstrapped with the following tools:",
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
472 join ('', map {"\n $_"} @tool_versions), "\n";
f2d3357d1ce7 * build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents: 7685
diff changeset
473
7685
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
474 print_news_deltas ($_, $prev_version, $curr_version)
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
475 foreach @news_file;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
476
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
477 $release_type eq 'major'
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
478 or print_changelog_deltas ($package_name, $prev_version);
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
479
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
480 exit 0;
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
481 }
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
482
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
483
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
484
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
485 ### Setup "GNU" style for perl-mode and cperl-mode.
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
486 ## Local Variables:
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
487 ## perl-indent-level: 2
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
488 ## perl-continued-statement-offset: 2
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
489 ## perl-continued-brace-offset: 0
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
490 ## perl-brace-offset: 0
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
491 ## perl-brace-imaginary-offset: 0
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
492 ## perl-label-offset: -2
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
493 ## cperl-indent-level: 2
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
494 ## cperl-brace-offset: 0
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
495 ## cperl-continued-brace-offset: 0
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
496 ## cperl-label-offset: -2
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
497 ## cperl-extra-newline-before-brace: t
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
498 ## cperl-merge-trailing-else: nil
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
499 ## cperl-continued-statement-offset: 2
89b16a28419e * build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff changeset
500 ## End: