diff -u texi2html-1.82+dfsg1/debian/changelog texi2html-1.82+dfsg1/debian/changelog --- texi2html-1.82+dfsg1/debian/changelog +++ texi2html-1.82+dfsg1/debian/changelog @@ -1,3 +1,13 @@ +texi2html (1.82+dfsg1-4) unstable; urgency=medium + + * QA upload. + * Make texi2html produce reproducible output (Closes: #783475): + - Add patch: 03_add_build-date_param.patch to honour $SOURCE_DATE_EPOCH and + command line option --build-date + - Add patch: 04_sort-perl-hash to sort hash values + + -- akira Sat, 08 Aug 2015 09:04:44 +0200 + texi2html (1.82+dfsg1-3) unstable; urgency=low * QA upload. diff -u texi2html-1.82+dfsg1/debian/patches/series texi2html-1.82+dfsg1/debian/patches/series --- texi2html-1.82+dfsg1/debian/patches/series +++ texi2html-1.82+dfsg1/debian/patches/series @@ -2,0 +3,2 @@ +03_add_build-date_param.patch +04_sort-perl-hash only in patch2: unchanged: --- texi2html-1.82+dfsg1.orig/debian/patches/03_add_build-date_param.patch +++ texi2html-1.82+dfsg1/debian/patches/03_add_build-date_param.patch @@ -0,0 +1,83 @@ +Description: Add --build-date command line flag. + Allow create reproducible documentation passing a unix time in the command + line. +Author: Juan Picca +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 (defined $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 = $ENV{'SOURCE_DATE_EPOCH'}; ++ + ###################### + # 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 + only in patch2: unchanged: --- texi2html-1.82+dfsg1.orig/debian/patches/04_sort-perl-hash +++ texi2html-1.82+dfsg1/debian/patches/04_sort-perl-hash @@ -0,0 +1,23 @@ +Description: Sort hash values to produce reproducible documentation +Author: Maria Valentina Marin + +--- a/texi2html.pl ++++ b/texi2html.pl +@@ -6223,7 +6223,7 @@ sub rearrange_elements() + } + + # use %sections and %headings to modify also the headings +- foreach my $section (values(%sections), values(%headings)) ++ foreach my $section (sort values(%sections), sort values(%headings)) + { + if ($Texi2HTML::Config::NEW_CROSSREF_STYLE and ($section->{'cross'} =~ /\S/)) + { +@@ -6257,7 +6257,7 @@ sub rearrange_elements() + } + + # construct human readable tocid +- foreach my $section (values(%sections)) ++ foreach my $section (sort values(%sections)) + { + if ($Texi2HTML::Config::NEW_CROSSREF_STYLE and ($section->{'cross'} =~ /\S/)) + {