ck-news revision 1.1.1.1.2.1 1 1.1 mrg #!/usr/bin/env perl
2 1.1 mrg
3 1.1 mrg # Note: this script must not be used to build MPFR due to the
4 1.1 mrg # dependency on perl, but this is OK for "make dist".
5 1.1 mrg
6 1.1.1.1.2.1 pgoyette # Copyright 2016-2018 Free Software Foundation, Inc.
7 1.1 mrg # This script is free software; the Free Software Foundation
8 1.1 mrg # gives unlimited permission to copy and/or distribute it,
9 1.1 mrg # with or without modifications, as long as this notice is preserved.
10 1.1 mrg
11 1.1 mrg # This program is distributed in the hope that it will be useful,
12 1.1 mrg # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13 1.1 mrg # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14 1.1 mrg # PARTICULAR PURPOSE.
15 1.1 mrg
16 1.1 mrg use strict;
17 1.1 mrg use Cwd;
18 1.1 mrg
19 1.1 mrg if (! -d 'src')
20 1.1 mrg {
21 1.1 mrg getcwd() =~ m,/tools$,
22 1.1 mrg or die "Execute $0 from the MPFR source directory\n";
23 1.1 mrg chdir '..' or die "$!\n$0: can't change cwd\n";
24 1.1 mrg }
25 1.1 mrg
26 1.1 mrg open VERSION, '<', 'VERSION'
27 1.1 mrg or die "$!\n$0: can't open VERSION file\n";
28 1.1 mrg my $version = do { local $/; <VERSION> };
29 1.1 mrg close VERSION or die "$!\n$0: can't close VERSION file\n";
30 1.1 mrg
31 1.1 mrg my ($base,$mv,$pl,$suf) = $version =~ /^((\d+\.\d+)\.(\d+))(-\S+)?/
32 1.1 mrg or die "$0: bad VERSION format\n";
33 1.1 mrg
34 1.1 mrg my $r1 = qr/^Changes from version/;
35 1.1 mrg my $r2 = qr/ to version \Q$base\E:/;
36 1.1 mrg my $rx = $pl ? qr/$r1 \Q$mv\E\.@{[$pl-1]}$r2/ : qr/${r1}s? \S+\.[0*]$r2/;
37 1.1 mrg
38 1.1 mrg open NEWS, '<', 'NEWS'
39 1.1 mrg or die "$!\n$0: can't open NEWS file\n";
40 1.1 mrg my $ok;
41 1.1 mrg while (<NEWS>)
42 1.1 mrg {
43 1.1 mrg /$rx/ and $ok = 1;
44 1.1 mrg $suf ne '-dev' && /FIXME|TODO/ and $! = 2, die "$0: $& in NEWS file";
45 1.1 mrg }
46 1.1 mrg close NEWS or die "$!\n$0: can't close NEWS file\n";
47 1.1 mrg
48 1.1 mrg $ok or $! = 1, die "$0: missing or bad change log in NEWS file\n";
49