[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#783475: texi2html: [PATCH] Allow make the build of documentation reproducible adding the use-date flag.



Package: texi2html
Version: 1.82+dfsg1-3
Followup-For: Bug #783475

Modified patch after comments and advices of Jérémy Bobbio.
The option was renamed to --build-date and now expects an unix time
integer which is formatted using pretty_time instead of using a given
string to show as timestamp.

-- System Information:
Debian Release: stretch/sid
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Description: Add --build-date command line flag.
 Allow create reproducible documentation passing a unix time in the command
 line.
Author: Juan Picca <jumapico@gmail.com>
Last-Update: 2015-05-16
--- a/T2h_i18n.pm
+++ b/T2h_i18n.pm
@@ -295,7 +295,14 @@ sub pretty_date($)
     my $lang = shift;
     my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst);
 
-    ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
+    if ($Texi2HTML::Config::BUILD_DATE)
+    {
+        ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = gmtime($Texi2HTML::Config::BUILD_DATE);
+    }
+    else
+    {
+        ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);
+    }
     $year += ($year < 70) ? 2000 : 1900;
     # obachman: Let's do it as the Americans do
     #return($MONTH_NAMES->{$lang}[$mon] . ", " . $mday . " " . $year);
--- a/texi2html.init
+++ b/texi2html.init
@@ -260,6 +260,10 @@ $MONOLITHIC = 1;
 # the specified url are used as stylesheet links
 @CSS_REFS = ();
 
+# -build-date
+# Use the given unix time as build date showing UTC timezone when it is used
+$BUILD_DATE = undef;
+
 ######################
 # The following options are only relevant if $L2H is set
 #
--- a/texi2html.pl
+++ b/texi2html.pl
@@ -261,6 +261,7 @@ $EXTERNAL_DIR
 $IGNORE_PREAMBLE_TEXT
 @CSS_FILES
 @CSS_REFS
+$BUILD_DATE
 $INLINE_CONTENTS
 $INLINE_INSERTCOPYING
 );
@@ -2600,6 +2601,13 @@ $T2H_OPTIONS -> {'css-ref'} =
  verbose => 'generate reference to the CSS URL $s'
 };
 
+$T2H_OPTIONS -> {'build-date'} =
+{
+ type => '=i',
+ linkage => \$Texi2HTML::Config::BUILD_DATE,
+ verbose => 'use the given unix time as build date showing UTC timezone when it is used'
+};
+
 $T2H_OPTIONS -> {'transliterate-file-names'} =
 {
  type => '!',
--- a/doc/texi2html.texi
+++ b/doc/texi2html.texi
@@ -523,6 +523,8 @@ Display a short help and exit.
 Be verbose.
 @item @longopt{version}
 Display version information and exit.
+@item @longopt{build-date=@var{unixtime}}
+Use the given unix time as build date showing UTC timezone when it is used.
 @end table
 
 @c --------------------------------------------------------
--- a/doc/texi2html.info
+++ b/doc/texi2html.info
@@ -435,6 +435,9 @@ Miscellaneous general options:
 `--version'
      Display version information and exit.
 
+`--build-date=UNIXTIME'
+     Use the given unix time as build date showing UTC timezone when it is used.
+
 
 File: texi2html.info,  Node: Splitting output,  Next: Output files,  Prev: General options,  Up: Invoking texi2html
 

Reply to: