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

Bug#783478: marked as done (texi2html: [PATCH] Please make the build reproducible)



Your message dated Wed, 23 Dec 2015 22:38:05 +0000
with message-id <E1aBs2n-0001IF-N3@franck.debian.org>
and subject line Bug#783478: fixed in texi2html 1.82+dfsg1-5
has caused the Debian Bug report #783478,
regarding texi2html: [PATCH] Please make the build reproducible
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
783478: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=783478
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: texi2html
Version: 1.82+dfsg1
Severity: normal
Tags: patch
User: reproducible-builds@lists.alioth.debian.org
Usertags: timestamps

Hi!

While working on the "reproducible builds" effort [1], we have noticed
that texi2html could not be built reproducibly.

The attached patch removes extra timestamps from the build system and
ensure a stable file order when creating the source archive. Once
applied, texi2html can be built reproducibly in our current experimental
framework.

 [1]: https://wiki.debian.org/ReproducibleBuilds

NOTE: THIS PATCH DEPENDS OF https://bugs.debian.org/783475

-- System Information:
Debian Release: 8.0
  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: Make the build reproducible
 This patch uses "dpkg-parsechangelog" instead of "mdate-sh" in configure.ac. A
 previous patch modifies the file configure.ac, changing his last modified
 time avoiding make the build reproducible.
 Due not usage the file mdate-sh is removed.
Author: Juan Picca <jumapico@gmail.com>
Last-Update: 2015-04-26
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@ dnl --enable-maintainer-mode argument.
 AM_MAINTAINER_MODE
 
 dnl Misc variable settings
-PACKAGE_DATE=`"$srcdir"/mdate-sh "$srcdir"/configure.ac`
+PACKAGE_DATE=`dpkg-parsechangelog -S date`
 AC_SUBST([PACKAGE_DATE])
 
 dnl Checks for programs.
--- a/doc/mdate-sh
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/bin/sh
-# Get modification time of a file or directory and pretty-print it.
-
-scriptversion=2005-06-29.22
-
-# Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software
-# Foundation, Inc.
-# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-case $1 in
-  '')
-     echo "$0: No file.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
-  -h | --h*)
-    cat <<\EOF
-Usage: mdate-sh [--help] [--version] FILE
-
-Pretty-print the modification time of FILE.
-
-Report bugs to <bug-automake@gnu.org>.
-EOF
-    exit $?
-    ;;
-  -v | --v*)
-    echo "mdate-sh $scriptversion"
-    exit $?
-    ;;
-esac
-
-# Prevent date giving response in another language.
-LANG=C
-export LANG
-LC_ALL=C
-export LC_ALL
-LC_TIME=C
-export LC_TIME
-
-# GNU ls changes its time format in response to the TIME_STYLE
-# variable.  Since we cannot assume `unset' works, revert this
-# variable to its documented default.
-if test "${TIME_STYLE+set}" = set; then
-  TIME_STYLE=posix-long-iso
-  export TIME_STYLE
-fi
-
-save_arg1=$1
-
-# Find out how to get the extended ls output of a file or directory.
-if ls -L /dev/null 1>/dev/null 2>&1; then
-  ls_command='ls -L -l -d'
-else
-  ls_command='ls -l -d'
-fi
-
-# A `ls -l' line looks as follows on OS/2.
-#  drwxrwx---        0 Aug 11  2001 foo
-# This differs from Unix, which adds ownership information.
-#  drwxrwx---   2 root  root      4096 Aug 11  2001 foo
-#
-# To find the date, we split the line on spaces and iterate on words
-# until we find a month.  This cannot work with files whose owner is a
-# user named `Jan', or `Feb', etc.  However, it's unlikely that `/'
-# will be owned by a user whose name is a month.  So we first look at
-# the extended ls output of the root directory to decide how many
-# words should be skipped to get the date.
-
-# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
-set x`ls -l -d /`
-
-# Find which argument is the month.
-month=
-command=
-until test $month
-do
-  shift
-  # Add another shift to the command.
-  command="$command shift;"
-  case $1 in
-    Jan) month=January; nummonth=1;;
-    Feb) month=February; nummonth=2;;
-    Mar) month=March; nummonth=3;;
-    Apr) month=April; nummonth=4;;
-    May) month=May; nummonth=5;;
-    Jun) month=June; nummonth=6;;
-    Jul) month=July; nummonth=7;;
-    Aug) month=August; nummonth=8;;
-    Sep) month=September; nummonth=9;;
-    Oct) month=October; nummonth=10;;
-    Nov) month=November; nummonth=11;;
-    Dec) month=December; nummonth=12;;
-  esac
-done
-
-# Get the extended ls output of the file or directory.
-set dummy x`eval "$ls_command \"\$save_arg1\""`
-
-# Remove all preceding arguments
-eval $command
-
-# Because of the dummy argument above, month is in $2.
-#
-# On a POSIX system, we should have
-#
-# $# = 5
-# $1 = file size
-# $2 = month
-# $3 = day
-# $4 = year or time
-# $5 = filename
-#
-# On Darwin 7.7.0 and 7.6.0, we have
-#
-# $# = 4
-# $1 = day
-# $2 = month
-# $3 = year or time
-# $4 = filename
-
-# Get the month.
-case $2 in
-  Jan) month=January; nummonth=1;;
-  Feb) month=February; nummonth=2;;
-  Mar) month=March; nummonth=3;;
-  Apr) month=April; nummonth=4;;
-  May) month=May; nummonth=5;;
-  Jun) month=June; nummonth=6;;
-  Jul) month=July; nummonth=7;;
-  Aug) month=August; nummonth=8;;
-  Sep) month=September; nummonth=9;;
-  Oct) month=October; nummonth=10;;
-  Nov) month=November; nummonth=11;;
-  Dec) month=December; nummonth=12;;
-esac
-
-case $3 in
-  ???*) day=$1;;
-  *) day=$3; shift;;
-esac
-
-# Here we have to deal with the problem that the ls output gives either
-# the time of day or the year.
-case $3 in
-  *:*) set `date`; eval year=\$$#
-       case $2 in
-	 Jan) nummonthtod=1;;
-	 Feb) nummonthtod=2;;
-	 Mar) nummonthtod=3;;
-	 Apr) nummonthtod=4;;
-	 May) nummonthtod=5;;
-	 Jun) nummonthtod=6;;
-	 Jul) nummonthtod=7;;
-	 Aug) nummonthtod=8;;
-	 Sep) nummonthtod=9;;
-	 Oct) nummonthtod=10;;
-	 Nov) nummonthtod=11;;
-	 Dec) nummonthtod=12;;
-       esac
-       # For the first six month of the year the time notation can also
-       # be used for files modified in the last year.
-       if (expr $nummonth \> $nummonthtod) > /dev/null;
-       then
-	 year=`expr $year - 1`
-       fi;;
-  *) year=$3;;
-esac
-
-# The result.
-echo $day $month $year
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -27,7 +27,7 @@ texi2html.html: texi2html.texi $(srcdir)
   $(top_srcdir)/MySimple.pm $(top_srcdir)/T2h_i18n.pm
 	TEXINPUTS=$(srcdir)::$$TEXINPUTS T2H_HOME=$(top_srcdir) \
 	  $(SHELL) $(top_srcdir)/missing-texi2html --run \
-	    $(PERL) -x $(top_srcdir)/texi2html.pl -V $<
+	    $(PERL) -x $(top_srcdir)/texi2html.pl --use-date="$(PACKAGE_DATE)" -V $<
 
 $(TEXI2HTML):
 	@(cd $(top_builddir) && make texi2html)
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -34,8 +34,7 @@ build_triplet = @build@
 host_triplet = @host@
 subdir = doc
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(srcdir)/stamp-vti $(srcdir)/version.texi TODO mdate-sh \
-	texinfo.tex
+	$(srcdir)/stamp-vti $(srcdir)/version.texi TODO texinfo.tex
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -260,8 +259,8 @@ texi2html.dvi: texi2html.texi $(srcdir)/
 texi2html.pdf: texi2html.texi $(srcdir)/version.texi
 $(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti
 $(srcdir)/stamp-vti: texi2html.texi $(top_srcdir)/configure
+	@#set `$(SHELL) $(srcdir)/mdate-sh $$dir/texi2html.texi`;
 	@(dir=.; test -f ./texi2html.texi || dir=$(srcdir); \
-	set `$(SHELL) $(srcdir)/mdate-sh $$dir/texi2html.texi`; \
 	echo "@set UPDATED $$1 $$2 $$3"; \
 	echo "@set UPDATED-MONTH $$2 $$3"; \
 	echo "@set EDITION $(VERSION)"; \
@@ -658,7 +657,7 @@ texi2html.html: texi2html.texi $(srcdir)
   $(top_srcdir)/MySimple.pm $(top_srcdir)/T2h_i18n.pm
 	TEXINPUTS=$(srcdir)::$$TEXINPUTS T2H_HOME=$(top_srcdir) \
 	  $(SHELL) $(top_srcdir)/missing-texi2html --run \
-	    $(PERL) -x $(top_srcdir)/texi2html.pl -V $<
+	    $(PERL) -x $(top_srcdir)/texi2html.pl --use-date="$(PACKAGE_DATE)" -V $<
 
 $(TEXI2HTML):
 	@(cd $(top_builddir) && make texi2html)
--- a/mdate-sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-# Get modification time of a file or directory and pretty-print it.
-# Copyright 1995, 1996, 1997 Free Software Foundation, Inc.
-# written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 59 Temple Place - Suite 330, Boston, MA 02110-1301, USA.
-
-# Prevent date giving response in another language.
-LANG=C
-export LANG
-LC_ALL=C
-export LC_ALL
-LC_TIME=C
-export LC_TIME
-
-# Get the extended ls output of the file or directory.
-# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
-if ls -L /dev/null 1>/dev/null 2>&1; then
-  set - x`ls -L -l -d $1`
-else
-  set - x`ls -l -d $1`
-fi
-# The month is at least the fourth argument
-# (3 shifts here, the next inside the loop).
-shift
-shift
-shift
-
-# Find the month.  Next argument is day, followed by the year or time.
-month=
-until test $month
-do
-  shift
-  case $1 in
-    Jan) month=January; nummonth=1;;
-    Feb) month=February; nummonth=2;;
-    Mar) month=March; nummonth=3;;
-    Apr) month=April; nummonth=4;;
-    May) month=May; nummonth=5;;
-    Jun) month=June; nummonth=6;;
-    Jul) month=July; nummonth=7;;
-    Aug) month=August; nummonth=8;;
-    Sep) month=September; nummonth=9;;
-    Oct) month=October; nummonth=10;;
-    Nov) month=November; nummonth=11;;
-    Dec) month=December; nummonth=12;;
-  esac
-done
-
-day=$2
-
-# Here we have to deal with the problem that the ls output gives either
-# the time of day or the year.
-case $3 in
-  *:*) set `date`; eval year=\$$#
-       case $2 in
-	 Jan) nummonthtod=1;;
-	 Feb) nummonthtod=2;;
-	 Mar) nummonthtod=3;;
-	 Apr) nummonthtod=4;;
-	 May) nummonthtod=5;;
-	 Jun) nummonthtod=6;;
-	 Jul) nummonthtod=7;;
-	 Aug) nummonthtod=8;;
-	 Sep) nummonthtod=9;;
-	 Oct) nummonthtod=10;;
-	 Nov) nummonthtod=11;;
-	 Dec) nummonthtod=12;;
-       esac
-       # For the first six month of the year the time notation can also
-       # be used for files modified in the last year.
-       if (expr $nummonth \> $nummonthtod) > /dev/null;
-       then
-	 year=`expr $year - 1`
-       fi;;
-  *) year=$3;;
-esac
-
-# The result.
-echo $day $month $year
--- a/Makefile.in
+++ b/Makefile.in
@@ -39,8 +39,7 @@ DIST_COMMON = README $(am__configure_dep
 	$(srcdir)/Makefile.in $(srcdir)/check_texinfo.pl.in \
 	$(srcdir)/manage_i18n.pl.in $(srcdir)/texi2html.pl \
 	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
-	TODO config.guess config.sub install-sh mdate-sh missing \
-	mkinstalldirs
+	TODO config.guess config.sub install-sh missing mkinstalldirs
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
--- a/configure
+++ b/configure
@@ -2273,7 +2273,7 @@ fi
 
 
 
-PACKAGE_DATE=`"$srcdir"/mdate-sh "$srcdir"/configure.ac`
+PACKAGE_DATE=`dpkg-parsechangelog -S date`
 
 
 

--- End Message ---
--- Begin Message ---
Source: texi2html
Source-Version: 1.82+dfsg1-5

We believe that the bug you reported is fixed in the latest version of
texi2html, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 783478@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Mattia Rizzolo <mattia@debian.org> (supplier of updated texi2html package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Wed, 23 Dec 2015 17:58:17 +0000
Source: texi2html
Binary: texi2html
Architecture: source
Version: 1.82+dfsg1-5
Distribution: unstable
Urgency: medium
Maintainer: Debian QA Group <packages@qa.debian.org>
Changed-By: Mattia Rizzolo <mattia@debian.org>
Description:
 texi2html  - Convert Texinfo files to HTML
Closes: 783478
Changes:
 texi2html (1.82+dfsg1-5) unstable; urgency=medium
 .
   * QA upload.
   * Use source format 3.0 (quilt).
     + Delete unneeded README.source.
     + Drop build-dep from quilt and dh_quilt_* in debian/rules.
   * Add patch to enable reproducible build:
     + 05_reproducible-build: set the PACKAGE_DATE ac variable to
       SOURCE_DATE_EPOCH if possible.  Closes: #783478
   * Bump Standards-Version to 3.9.6, no changes needed.
   * Do proper autoretooling with dh-autoreconf.
     + Add build-dep on dh-autoreconf.
     + Fix patch 02_removed_test_manuals.diff to also change test/Makefile.am.
   * Bump debhelper compat version to 9.
     + Tight the build-dep on debhelper to >= 9
   * Use the dh sequencer.
Checksums-Sha1:
 bbeb03558a099d5584cd4b30f8b9e36b9429d470 1767 texi2html_1.82+dfsg1-5.dsc
 7cdd4ebc009fe3de2a999c8cb72fafb6d619b8d1 7292 texi2html_1.82+dfsg1-5.debian.tar.xz
Checksums-Sha256:
 312b46b7686643459ac6083a7184136c38776e5c4998b3b47bc0341028d71170 1767 texi2html_1.82+dfsg1-5.dsc
 06bdbc23f16742ad0df620ecf1fce129830ad7c7af3eec36f7e8e67b4fbf92dc 7292 texi2html_1.82+dfsg1-5.debian.tar.xz
Files:
 7771ff689ac193ad4705a1089ccbbb2c 1767 text optional texi2html_1.82+dfsg1-5.dsc
 3db499cee6f97e14ab4230cd7e2b6612 7292 text optional texi2html_1.82+dfsg1-5.debian.tar.xz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJWexBZAAoJEEsEP825REVARDwQAJd2MQDJx+uUA/xsW2YXrwC9
Yht7lY0Tg1RsJ2aRId/HpNhxWYgmH9uYhXn3kito6FYgu2MBarmQWNbxNQhI0Ve5
TYHCEPHymfYZMZc7B1Nb1LjRc+1+yv7jYEljA35ObGquXZbI37EE92JgbatKDch1
8DgUXzeDP3M6GJ3wac8lUp4bCgnjDoey36JNBtl2J0e7ObiLLXk7MHSfafcBHWpj
+vV+VTkJVJsOedPy3oAnq0GxuzcO3IBlOydKeWMn9tWVxcXGsiFxGTTNjwSq9nqD
DC2TmF+pKBfwg1XYY01F964/ZDi/VxBTxFL5azfmjXEYHGwZp9VrbsubL6K7VUqh
HJGbCjLIeI8d/86Y26psOw+DtNtPchFtiRHs8cpbtZztXMcMXNLrpcj9WcHVsKQ6
I3oOT7nfRl8wA1yVb4wTGDTlFqCS8HQfBKsemFHDzm8qEm8423lU/d9l2rGUvnY2
0G/0Nwra68EqldQ09wJ8mXMZMhY/0GCY2JI6jEaC3MjRsO4bJfunLBgXXDoGqGse
+xtYjG/ZPqSBdq5CWFc+id45uY4pNhJ/p6eUf7hHM7OuVW9/LuIQdu7m7W8uDdJu
J98RRTp+t4h+cdM+2+6vyV9TFGEcn0tah2stgkpVbvRY1EQymW3ZvWnZOkB6iW+Q
g/+GuBhabp35rJbmN+ZC
=UjFl
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: