Mercurial > hg > octave-lojdl > gnulib-hg
annotate build-aux/announce-gen @ 10859:82a95524822c
announce-gen (get_tool_versions): Accept .xz tarballs.
author | Jim Meyering <meyering@redhat.com> |
---|---|
date | Tue, 02 Dec 2008 17:29:25 +0100 |
parents | 11b902b8ebdc |
children | 744c2c4f9309 |
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 |
10859
82a95524822c
announce-gen (get_tool_versions): Accept .xz tarballs.
Jim Meyering <meyering@redhat.com>
parents:
10766
diff
changeset
|
4 my $VERSION = '2008-12-02 16:28'; # UTC |
7718
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
5 # The definition above must lie within the first 8 lines in order |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
6 # for the Emacs time-stamp write hook (at end) to update it. |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
7 # If you change this file with Emacs, please let the write hook |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
8 # do its job. Otherwise, update this string manually. |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
9 |
9609
55121d90f0ce
* build-aux/announce-gen: Also check for lzma-compressed files.
Jim Meyering <meyering@redhat.com>
parents:
9114
diff
changeset
|
10 # Copyright (C) 2002-2008 Free Software Foundation, Inc. |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
11 |
9114
81009beff1e2
* build-aux/announce-gen: Update to GPLv3.
Paul Eggert <eggert@cs.ucla.edu>
parents:
8256
diff
changeset
|
12 # This program is free software: you can redistribute it and/or modify |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
13 # it under the terms of the GNU General Public License as published by |
9114
81009beff1e2
* build-aux/announce-gen: Update to GPLv3.
Paul Eggert <eggert@cs.ucla.edu>
parents:
8256
diff
changeset
|
14 # the Free Software Foundation, either version 3 of the License, or |
81009beff1e2
* build-aux/announce-gen: Update to GPLv3.
Paul Eggert <eggert@cs.ucla.edu>
parents:
8256
diff
changeset
|
15 # (at your option) any later version. |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
16 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
17 # 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
|
18 # 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
|
19 # 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
|
20 # GNU General Public License for more details. |
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 # You should have received a copy of the GNU General Public License |
9114
81009beff1e2
* build-aux/announce-gen: Update to GPLv3.
Paul Eggert <eggert@cs.ucla.edu>
parents:
8256
diff
changeset
|
23 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
24 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
25 # Written by Jim Meyering |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
26 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
27 use strict; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
28 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
29 use Getopt::Long; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
30 use Digest::MD5; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
31 use Digest::SHA1; |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
32 use POSIX qw(strftime); |
7685
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 (my $ME = $0) =~ s|.*/||; |
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 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
|
37 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
38 END |
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 # 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
|
41 # 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
|
42 # the filehandle. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
43 # |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
44 # 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
|
45 # 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
|
46 defined fileno STDOUT |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
47 or return; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
48 close STDOUT |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
49 and return; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
50 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
51 # 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
|
52 warn "$ME: closing standard output: $!\n"; |
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 # 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
|
55 # 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
|
56 # 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
|
57 # |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
58 # 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
|
59 # preserve the value: it might be important). |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
60 $? ||= 1; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
61 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
62 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
63 sub usage ($) |
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 my ($exit_code) = @_; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
66 my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
67 if ($exit_code != 0) |
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 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
|
70 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
71 else |
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 my @types = sort keys %valid_release_types; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
74 print $STREAM <<EOF; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
75 Usage: $ME [OPTIONS] |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
76 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
77 OPTIONS: |
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 Generate an announcement message. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
80 |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
81 These options must be specified: |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
82 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
83 --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
|
84 --package-name=PACKAGE_NAME |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
85 --previous-version=VER |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
86 --current-version=VER |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
87 --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
|
88 --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
|
89 |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
90 The following are optional: |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
91 |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
92 --news=NEWS_FILE |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
93 --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
|
94 autoconf,automake,bison,gnulib |
10619
73ac6a6d08a9
Improve announce-gen user messages.
Ben Pfaff <blp@cs.stanford.edu>
parents:
10145
diff
changeset
|
95 --gnulib-version=VERSION report VERSION as the gnulib version, where |
73ac6a6d08a9
Improve announce-gen user messages.
Ben Pfaff <blp@cs.stanford.edu>
parents:
10145
diff
changeset
|
96 VERSION is the result of running git describe |
73ac6a6d08a9
Improve announce-gen user messages.
Ben Pfaff <blp@cs.stanford.edu>
parents:
10145
diff
changeset
|
97 in the gnulib source directory. |
73ac6a6d08a9
Improve announce-gen user messages.
Ben Pfaff <blp@cs.stanford.edu>
parents:
10145
diff
changeset
|
98 required if gnulib is in TOOL_LIST. |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
99 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
100 --help display this help and exit |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
101 --version output version information and exit |
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 EOF |
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 exit $exit_code; |
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 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
108 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
109 =item C<%size> = C<sizes (@file)> |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
110 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
111 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
|
112 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
|
113 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
114 =cut |
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 sub sizes (@) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
117 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
118 my (@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 $fail = 0; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
121 my %res; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
122 foreach my $f (@file) |
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 my $cmd = "du --human $f"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
125 my $t = `$cmd`; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
126 # 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
|
127 $@ |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
128 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
|
129 chomp $t; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
130 $t =~ s/^([\d.]+[MkK]).*/${1}B/; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
131 $res{$f} = $t; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
132 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
133 return $fail ? undef : %res; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
134 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
135 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
136 =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
|
137 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
138 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
|
139 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
|
140 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
141 =cut |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
142 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
143 sub print_locations ($\@\%@) |
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 my ($title, $url, $size, @file) = @_; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
146 print "Here are the $title:\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
147 foreach my $url (@{$url}) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
148 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
149 for my $file (@file) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
150 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
151 print " $url/$file"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
152 print " (", $$size{$file}, ")" |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
153 if exists $$size{$file}; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
154 print "\n"; |
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 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
157 print "\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
158 } |
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 =item C<print_checksums (@file) |
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 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
|
163 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
164 =cut |
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 sub print_checksums (@) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
167 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
168 my (@file) = @_; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
169 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
170 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
|
171 print "\n"; |
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 foreach my $meth (qw (md5 sha1)) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
174 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
175 foreach my $f (@file) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
176 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
177 open IN, '<', $f |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
178 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
|
179 binmode IN; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
180 my $dig = |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
181 ($meth eq 'md5' |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
182 ? Digest::MD5->new->addfile(*IN)->hexdigest |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
183 : Digest::SHA1->new->addfile(*IN)->hexdigest); |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
184 close IN; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
185 print "$dig $f\n"; |
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 |
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 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
191 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
192 =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
|
193 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
194 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
|
195 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
|
196 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
197 =cut |
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 sub print_news_deltas ($$$) |
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 my ($news_file, $prev_version, $curr_version) = @_; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
202 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
203 print "\n$news_file\n\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
204 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
205 # 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
|
206 # 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
|
207 # the first occurrence of $prev_version. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
208 my $in_items; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
209 |
10766
11b902b8ebdc
Accept Bison's NEWS format.
Paolo Bonzini <bonzini@gnu.org>
parents:
10619
diff
changeset
|
210 my $re_prefix = qr/(?:\* )?(?:Noteworthy c|Major c|C)(?i:hanges)/; |
7685
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 open NEWS, '<', $news_file |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
213 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
|
214 while (defined (my $line = <NEWS>)) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
215 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
216 if ( ! $in_items) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
217 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
218 # Match lines like these: |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
219 # * Major changes in release 5.0.1: |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
220 # * 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
|
221 $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
|
222 or next; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
223 $in_items = 1; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
224 print $line; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
225 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
226 else |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
227 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
228 # 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
|
229 # 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
|
230 # 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
|
231 $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
|
232 and last; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
233 print $line; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
234 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
235 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
236 close NEWS; |
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 $in_items |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
239 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
|
240 } |
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 sub print_changelog_deltas ($$) |
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 my ($package_name, $prev_version) = @_; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
245 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
246 # Print new ChangeLog entries. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
247 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
248 # First find all CVS-controlled ChangeLog files. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
249 use File::Find; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
250 my @changelog; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
251 find ({wanted => sub {$_ eq 'ChangeLog' && -d 'CVS' |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
252 and push @changelog, $File::Find::name}}, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
253 '.'); |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
254 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
255 # 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
|
256 @changelog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
257 or return; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
258 my %changelog = map {$_ => 1} @changelog; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
259 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
260 # 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
|
261 # 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
|
262 # in this order: |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
263 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
|
264 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
265 # 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
|
266 # ./ChangeLog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
267 # ./po/ChangeLog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
268 # ./m4/ChangeLog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
269 # ./lib/ChangeLog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
270 # ./doc/ChangeLog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
271 # ./config/ChangeLog |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
272 my @reordered; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
273 foreach my $d (@dir) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
274 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
275 my $dot_slash = $d eq '.' ? $d : "./$d"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
276 my $target = "$dot_slash/ChangeLog"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
277 delete $changelog{$target} |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
278 and push @reordered, $target; |
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 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
281 # Append any remaining ChangeLog files. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
282 push @reordered, sort keys %changelog; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
283 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
284 # Remove leading `./'. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
285 @reordered = map { s!^\./!!; $_ } @reordered; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
286 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
287 print "\nChangeLog entries:\n\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
288 # print join ("\n", @reordered), "\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
289 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
290 $prev_version =~ s/\./_/g; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
291 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
|
292 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
293 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
|
294 open DIFF, '-|', $cmd |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
295 or die "$ME: cannot run `$cmd': $!\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
296 # 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
|
297 # Lines starting with `+++ ', e.g., |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
298 # +++ 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
|
299 # and those starting with `+'. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
300 # Don't print the others. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
301 my $prev_printed_line_empty = 1; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
302 while (defined (my $line = <DIFF>)) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
303 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
304 if ($line =~ /^\+\+\+ /) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
305 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
306 my $separator = "*"x70 ."\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
307 $line =~ s///; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
308 $line =~ s/\s.*//; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
309 $prev_printed_line_empty |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
310 or print "\n"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
311 print $separator, $line, $separator; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
312 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
313 elsif ($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 $line =~ s///; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
316 print $line; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
317 $prev_printed_line_empty = ($line =~ /^$/); |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
318 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
319 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
320 close DIFF; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
321 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
322 # The exit code should be 1. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
323 # 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
|
324 $? == 256 || $? == 128 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
325 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
|
326 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
327 |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
328 sub get_tool_versions ($$) |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
329 { |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
330 my ($tool_list, $gnulib_version) = @_; |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
331 @$tool_list |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
332 or return (); |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
333 |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
334 my $fail; |
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; |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
336 foreach my $t (@$tool_list) |
7716
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 { |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
340 push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version; |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
341 next; |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
342 } |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
343 # 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
|
344 # `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
|
345 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
|
346 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
|
347 { |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
348 $t = ucfirst $t; |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
349 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
|
350 } |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
351 else |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
352 { |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
353 defined $first_line |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
354 and $first_line = ''; |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
355 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
|
356 $fail = 1; |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
357 } |
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 $fail |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
361 and exit 1; |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
362 |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
363 return @tool_version_pair; |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
364 } |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
365 |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
366 { |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
367 # 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
|
368 # 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
|
369 $ENV{LC_ALL} = "C"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
370 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
371 my $release_type; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
372 my $package_name; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
373 my $prev_version; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
374 my $curr_version; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
375 my $gpg_key_id; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
376 my @url_dir_list; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
377 my @news_file; |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
378 my $bootstrap_tools; |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
379 my $gnulib_version; |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
380 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
381 GetOptions |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
382 ( |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
383 'release-type=s' => \$release_type, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
384 'package-name=s' => \$package_name, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
385 'previous-version=s' => \$prev_version, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
386 'current-version=s' => \$curr_version, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
387 'gpg-key-id=s' => \$gpg_key_id, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
388 'url-directory=s' => \@url_dir_list, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
389 '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
|
390 'bootstrap-tools=s' => \$bootstrap_tools, |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
391 'gnulib-version=s' => \$gnulib_version, |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
392 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
393 help => sub { usage 0 }, |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
394 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
|
395 ) or usage 1; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
396 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
397 my $fail = 0; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
398 # 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
|
399 $release_type |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
400 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
|
401 $package_name |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
402 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
|
403 $prev_version |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
404 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
|
405 $curr_version |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
406 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
|
407 $gpg_key_id |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
408 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
|
409 @url_dir_list |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
410 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
|
411 |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
412 my @tool_list = split ',', $bootstrap_tools; |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
413 |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
414 grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
415 and (warn "$ME: when specifying gnulib as a tool, you must also specify\n" |
9678
e183f3b9154c
Use "git COMMAND", not "git-COMMAND".
Jim Meyering <meyering@redhat.com>
parents:
9610
diff
changeset
|
416 . "--gnulib-version=V, where V is the result of running git describe\n" |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
417 . "in the gnulib source directory.\n"), $fail = 1; |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
418 |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
419 exists $valid_release_types{$release_type} |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
420 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
|
421 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
422 @ARGV |
8256
53012fe4365b
* build-aux/announce-gen: When complaining about excess arguments,
Jim Meyering <jim@meyering.net>
parents:
7761
diff
changeset
|
423 and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"), |
53012fe4365b
* build-aux/announce-gen: When complaining about excess arguments,
Jim Meyering <jim@meyering.net>
parents:
7761
diff
changeset
|
424 $fail = 1; |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
425 $fail |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
426 and usage 1; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
427 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
428 my $my_distdir = "$package_name-$curr_version"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
429 my $tgz = "$my_distdir.tar.gz"; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
430 my $tbz = "$my_distdir.tar.bz2"; |
9609
55121d90f0ce
* build-aux/announce-gen: Also check for lzma-compressed files.
Jim Meyering <meyering@redhat.com>
parents:
9114
diff
changeset
|
431 my $lzma = "$my_distdir.tar.lzma"; |
10859
82a95524822c
announce-gen (get_tool_versions): Accept .xz tarballs.
Jim Meyering <meyering@redhat.com>
parents:
10766
diff
changeset
|
432 my $xz = "$my_distdir.tar.xz"; |
82a95524822c
announce-gen (get_tool_versions): Accept .xz tarballs.
Jim Meyering <meyering@redhat.com>
parents:
10766
diff
changeset
|
433 |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
434 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
|
435 |
10859
82a95524822c
announce-gen (get_tool_versions): Accept .xz tarballs.
Jim Meyering <meyering@redhat.com>
parents:
10766
diff
changeset
|
436 my @tarballs = grep {-f $_} ($tgz, $tbz, $lzma, $xz); |
10619
73ac6a6d08a9
Improve announce-gen user messages.
Ben Pfaff <blp@cs.stanford.edu>
parents:
10145
diff
changeset
|
437 @tarballs |
10859
82a95524822c
announce-gen (get_tool_versions): Accept .xz tarballs.
Jim Meyering <meyering@redhat.com>
parents:
10766
diff
changeset
|
438 or die "$ME: none of $tgz, $tbz, $lzma or $xz were found\n"; |
7761
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
439 my @sizable = @tarballs; |
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
440 -f $xd |
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
441 and push @sizable, $xd; |
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
442 my %size = sizes (@sizable); |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
443 %size |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
444 or exit 1; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
445 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
446 # 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
|
447 # 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
|
448 print <<EOF; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
449 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
450 Subject: $my_distdir released |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
451 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
452 <\#secure method=pgpmime mode=sign> |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
453 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
454 FIXME: put comments here |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
455 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
456 EOF |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
457 |
7761
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
458 print_locations ("compressed sources", @url_dir_list, %size, @tarballs); |
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
459 -f $xd |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
460 and print_locations ("xdelta diffs (useful? if so, " |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
461 . "please tell bug-gnulib\@gnu.org)", |
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
462 @url_dir_list, %size, $xd); |
7761
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
463 my @sig_files = map { "$_.sig" } @tarballs; |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
464 print_locations ("GPG detached signatures[*]", @url_dir_list, %size, |
7761
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
465 @sig_files); |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
466 |
7761
40f43f921279
* build-aux/announce-gen: Do not assume that the package
Jim Meyering <jim@meyering.net>
parents:
7718
diff
changeset
|
467 print_checksums (@sizable); |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
468 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
469 print <<EOF; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
470 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
471 [*] 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
|
472 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
|
473 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
|
474 Then, run a command like this: |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
475 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
476 gpg --verify $tgz.sig |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
477 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
478 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
|
479 then run this command to import it: |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
480 |
10145
1c6dc066fe6d
announce-gen: use a better key-server host name
Jim Meyering <meyering@redhat.com>
parents:
9678
diff
changeset
|
481 gpg --keyserver keys.gnupg.net --recv-keys $gpg_key_id |
7685
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 and rerun the \`gpg --verify' command. |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
484 EOF |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
485 |
9610
d317af57e145
announce-gen: emit Gnulib's git-based version string.
Jim Meyering <meyering@redhat.com>
parents:
9609
diff
changeset
|
486 my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version); |
7716
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
487 @tool_versions |
f2d3357d1ce7
* build-aux/announce-gen: Add two new options, both optional:
Jim Meyering <jim@meyering.net>
parents:
7685
diff
changeset
|
488 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
|
489 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
|
490 |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
491 print_news_deltas ($_, $prev_version, $curr_version) |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
492 foreach @news_file; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
493 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
494 $release_type eq 'major' |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
495 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
|
496 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
497 exit 0; |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
498 } |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
499 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
500 ### 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
|
501 ## Local Variables: |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
502 ## perl-indent-level: 2 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
503 ## perl-continued-statement-offset: 2 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
504 ## perl-continued-brace-offset: 0 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
505 ## perl-brace-offset: 0 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
506 ## perl-brace-imaginary-offset: 0 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
507 ## perl-label-offset: -2 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
508 ## cperl-indent-level: 2 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
509 ## cperl-brace-offset: 0 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
510 ## cperl-continued-brace-offset: 0 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
511 ## cperl-label-offset: -2 |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
512 ## cperl-extra-newline-before-brace: t |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
513 ## cperl-merge-trailing-else: nil |
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
514 ## cperl-continued-statement-offset: 2 |
7718
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
515 ## eval: (add-hook 'write-file-hooks 'time-stamp) |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
516 ## time-stamp-start: "my $VERSION = '" |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
517 ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
518 ## time-stamp-time-zone: "UTC" |
605d4ddb5673
* build-aux/announce-gen ($VERSION): Don't use of $Revision...$.
Jim Meyering <jim@meyering.net>
parents:
7716
diff
changeset
|
519 ## time-stamp-end: "'; # UTC" |
7685
89b16a28419e
* build-aux/announce-gen: New file. From coreutils.
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
520 ## End: |