diff options
-rw-r--r-- | Documentation/include.mk | 7 | ||||
-rwxr-xr-x | Documentation/mknews.perl | 16 | ||||
-rw-r--r-- | Makefile.PL | 3 |
3 files changed, 16 insertions, 10 deletions
diff --git a/Documentation/include.mk b/Documentation/include.mk index 0229bf40..3d88fcec 100644 --- a/Documentation/include.mk +++ b/Documentation/include.mk @@ -62,12 +62,7 @@ Documentation/standards.txt : Documentation/standards.perl 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: diff --git a/Documentation/mknews.perl b/Documentation/mknews.perl index 3efabdb5..71b1a996 100755 --- a/Documentation/mknews.perl +++ b/Documentation/mknews.perl @@ -21,8 +21,8 @@ my $atom_url = 'https://public-inbox.org/NEWS.atom'; 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') { @@ -73,9 +73,17 @@ rename($tmp, $dst) or die; 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 { diff --git a/Makefile.PL b/Makefile.PL index 94ec16c6..2b3c7fd0 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -8,6 +8,8 @@ chomp(my @manifest = (<$m>)); 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'; @@ -91,6 +93,7 @@ my $VARS = join("\n", map {; 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 |