>From d4f2151d6964a8d73f873f3e1f46b71af98d9eee Mon Sep 17 00:00:00 2001
From: Colin Watson
Date: Wed, 27 Aug 2014 09:06:26 +0100
Subject: [PATCH] Honour GROFF_NO_TIMESTAMPS, for more reproducible builds
* src/devices/grohtml/post-html.cpp, src/devices/gropdf/gropdf.pl,
src/devices/grops/ps.cpp: Don't emit creation timestamp if the
environment variable `GROFF_NO_TIMESTAMPS' is set.
* src/devices/grohtml/grohtml.man, src/devices/gropdf/gropdf.man,
src/devices/grops/grops.man: Updated.
---
ChangeLog | 8 +++++++
src/devices/grohtml/grohtml.man | 6 ++++++
src/devices/grohtml/post-html.cpp | 45 ++++++++++++++++++++++-----------------
src/devices/gropdf/gropdf.man | 6 ++++++
src/devices/gropdf/gropdf.pl | 16 ++++++++------
src/devices/grops/grops.man | 6 ++++++
src/devices/grops/ps.cpp | 3 ++-
7 files changed, 63 insertions(+), 27 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 0812769..8b956c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-08-27 Colin Watson
+
+ * src/devices/grohtml/post-html.cpp, src/devices/gropdf/gropdf.pl,
+ src/devices/grops/ps.cpp: Don't emit creation timestamp if the
+ environment variable `GROFF_NO_TIMESTAMPS' is set. *
+ src/devices/grohtml/grohtml.man, src/devices/gropdf/gropdf.man,
+ src/devices/grops/grops.man: Updated.
+
2014-08-20 Bernd Warken
* groff.7 (man/groff.man): Add further preprocessor regions.
diff --git a/src/devices/grohtml/grohtml.man b/src/devices/grohtml/grohtml.man
index 02209e2..f20883d 100644
--- a/src/devices/grohtml/grohtml.man
+++ b/src/devices/grohtml/grohtml.man
@@ -370,6 +370,12 @@ and
for more details.
.
.
+.TP
+.SM
+.B GROFF_NO_TIMESTAMPS
+If set, do not include the creation timestamp in the output file.
+.
+.
.SH BUGS
.B Grohtml
has been completely redesigned and rewritten.
diff --git a/src/devices/grohtml/post-html.cpp b/src/devices/grohtml/post-html.cpp
index f4656a0..60fddbc 100644
--- a/src/devices/grohtml/post-html.cpp
+++ b/src/devices/grohtml/post-html.cpp
@@ -36,6 +36,7 @@ along with this program. If not, see . */
#include
#endif
+#include
#include
#include
#include
@@ -4988,12 +4989,6 @@ void html_printer::do_file_components (void)
file_list.move_next();
if (file_list.is_new_output_file()) {
-#ifdef LONG_FOR_TIME_T
- long t;
-#else
- time_t t;
-#endif
-
if (fragment_no > 1)
write_navigation(top, prev, next, current);
prev = current;
@@ -5014,10 +5009,18 @@ void html_printer::do_file_components (void)
.put_string(Version_string)
.end_comment();
- t = time(0);
- html.begin_comment("CreationDate: ")
- .put_string(ctime(&t), strlen(ctime(&t))-1)
- .end_comment();
+ if (!getenv("GROFF_NO_TIMESTAMPS")) {
+#ifdef LONG_FOR_TIME_T
+ long t;
+#else
+ time_t t;
+#endif
+
+ t = time(0);
+ html.begin_comment("CreationDate: ")
+ .put_string(ctime(&t), strlen(ctime(&t))-1)
+ .end_comment();
+ }
if (dialect == html4)
writeHeadMetaStyle();
@@ -5107,12 +5110,6 @@ void html_printer::writeHeadMetaStyle (void)
html_printer::~html_printer()
{
-#ifdef LONG_FOR_TIME_T
- long t;
-#else
- time_t t;
-#endif
-
if (current_paragraph)
current_paragraph->flush_text();
html.end_line();
@@ -5127,10 +5124,18 @@ html_printer::~html_printer()
.put_string(Version_string)
.end_comment();
- t = time(0);
- html.begin_comment("CreationDate: ")
- .put_string(ctime(&t), strlen(ctime(&t))-1)
- .end_comment();
+ if (!getenv("GROFF_NO_TIMESTAMPS")) {
+#ifdef LONG_FOR_TIME_T
+ long t;
+#else
+ time_t t;
+#endif
+
+ t = time(0);
+ html.begin_comment("CreationDate: ")
+ .put_string(ctime(&t), strlen(ctime(&t))-1)
+ .end_comment();
+ }
if (dialect == html4)
writeHeadMetaStyle();
diff --git a/src/devices/gropdf/gropdf.man b/src/devices/gropdf/gropdf.man
index 426a4d0..f698104 100644
--- a/src/devices/gropdf/gropdf.man
+++ b/src/devices/gropdf/gropdf.man
@@ -977,6 +977,12 @@ and
for more details.
.
.
+.TP
+.SM
+.B GROFF_NO_TIMESTAMPS
+If set, do not include the creation timestamp in the output file.
+.
+.
.SH FILES
.
.Tp \w'address@hidden@/devpdf/download'u+2n
diff --git a/src/devices/gropdf/gropdf.pl b/src/devices/gropdf/gropdf.pl
index f18bac8..2054c53 100644
--- a/src/devices/gropdf/gropdf.pl
+++ b/src/devices/gropdf/gropdf.pl
@@ -241,13 +241,17 @@ elsif (exists($ppsz{$papersz}))
@address@hidden(0,0,$ppsz{$papersz}->[0],$ppsz{$papersz}->[1]);
}
-my (@dt)=localtime(time);
-my $dt=PDFDate(address@hidden);
-
my %info=('Creator' => "(groff version $cfg{GROFF_VERSION})",
- 'Producer' => "(gropdf version $cfg{GROFF_VERSION})",
- 'ModDate' => "($dt)",
- 'CreationDate' => "($dt)");
+ 'Producer' => "(gropdf version $cfg{GROFF_VERSION})");
+
+if (!exists($ENV{GROFF_NO_TIMESTAMPS})) {
+ my (@dt)=localtime(time);
+ my $dt=PDFDate(address@hidden);
+
+ $info{'ModDate'} = "($dt)";
+ $info{'CreationDate'} = "($dt)";
+}
+
while (<>)
{
chomp;
diff --git a/src/devices/grops/grops.man b/src/devices/grops/grops.man
index 50b4696..6ed1c91 100644
--- a/src/devices/grops/grops.man
+++ b/src/devices/grops/grops.man
@@ -1378,6 +1378,12 @@ and
for more details.
.
.
+.TP
+.SM
+.B GROFF_NO_TIMESTAMPS
+If set, do not include the creation timestamp in the output file.
+.
+.
.SH FILES
.
.Tp \w'address@hidden@/devps/download'u+2n
diff --git a/src/devices/grops/ps.cpp b/src/devices/grops/ps.cpp
index ab1b080..ebea05e 100644
--- a/src/devices/grops/ps.cpp
+++ b/src/devices/grops/ps.cpp
@@ -32,6 +32,7 @@ along with this program. If not, see . */
#include "paper.h"
#include "ps.h"
+#include
#include
#ifdef NEED_DECLARATION_PUTENV
@@ -1385,7 +1386,7 @@ ps_printer::~ps_printer()
.comment_arg("version")
.comment_arg(Version_string)
.end_comment();
- {
+ if (!getenv("GROFF_NO_TIMESTAMPS")) {
fputs("%%CreationDate: ", out.get_file());
#ifdef LONG_FOR_TIME_T
long
--
2.1.0