touch -r Documentation/standards.perl $@+
mv $@+ $@
-RELEASES =
-RELEASES += v1.2.0
-RELEASES += v1.1.0-pre1
-RELEASES += v1.0.0
-
-NEWS NEWS.atom NEWS.html : Documentation/include.mk
+NEWS NEWS.atom NEWS.html : $(news_deps)
$(PERL) -I lib -w Documentation/mknews.perl $@ $(RELEASES)
# check for internal API changes:
my $addr = 'meta@public-inbox.org';
my $latest = shift(@releases) or die 'no releases?';
-my $mime_latest = release2mime($latest);
-my $mtime = msg_datestamp($mime_latest->header_obj);
+my $mtime;
+my $mime_latest = release2mime($latest, \$mtime);
my $tmp = "$dst+";
my $out;
if ($dst eq 'NEWS') {
exit 0;
sub release2mime {
- my $f = "$dir/$_[0].eml";
+ my ($release, $mtime_ref) = @_;
+ my $f = "$dir/$release.eml";
open(my $fh, '<', $f) or die "open($f): $!";
- PublicInbox::MIME->new(do { local $/; <$fh> });
+ my $mime = PublicInbox::MIME->new(do { local $/; <$fh> });
+ # Documentation/include.mk relies on mtimes of each .eml file
+ # to trigger rebuild, so make sure we sync the mtime to the Date:
+ # header in the .eml
+ my $mtime = msg_datestamp($mime->header_obj);
+ utime($mtime, $mtime, $fh) or warn "futimes $f: $!";
+ $$mtime_ref = $mtime if $mtime_ref;
+ $mime;
}
sub mime2txt {
my @EXE_FILES = grep(m!^script/!, @manifest);
my $v = {};
my $t = {};
+my @RELEASES = qw(v1.2.0 v1.1.0-pre1 v1.0.0); # do not sort
+$v->{news_deps} = [ map { "Documentation/RelNotes/$_.eml" } @RELEASES ];
$v->{txt} = [ qw(INSTALL README COPYING TODO HACKING) ];
my @dtxt = grep(m!\ADocumentation/.*\.txt\z!, @manifest);
push @dtxt, 'Documentation/standards.txt';
my $varname = $_;
join('', map { "$varname += $_\n" } sort @{$v->{$varname}});
} grep(!/^-/, sort keys %$v));
+$VARS .= "\nRELEASES = ".join(' ', @RELEASES)."\n";
# Don't waste user's disk space by installing some pods from
# imported code or internal use only