[Reproducible-builds] Bug#795441: aprx: please make the build reproducible
Source: aprx Version: 2.08.svn593-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that aprx could not be built reproducibly. The attached patch removes timezone-varying timestamps from the generated manpages Once applied, aprx can be built reproducibly in our reproducible toolchain. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `- diff --no-dereference -urNad aprx.orig/aprx-2.08.svn593/debian/patches/02-reproducible-build.patch aprx/aprx-2.08.svn593/debian/patches/02-reproducible-build.patch --- aprx.orig/aprx-2.08.svn593/debian/patches/02-reproducible-build.patch 1970-01-01 01:00:00.0 +0100 +++ aprx/aprx-2.08.svn593/debian/patches/02-reproducible-build.patch 2015-08-14 01:54:06.223288942 +0200 @@ -0,0 +1,13 @@ +--- aprx-2.08.svn593.orig/Makefile.in aprx-2.08.svn593/Makefile.in +@@ -56,8 +56,8 @@ versionupdate := $(shell if [ $(PKG_REV + # SVNVERSION_CMD:=$(shell which svnversion) + # SVNVERSION:=$(shell if ${SVNVERSION_CMD} /dev/null 21 \\ test -x ${SVNVERSION_CMD} -a \( -d .svn -o -d ../.svn -o -d ../../.svn \) ; then ${SVNVERSION_CMD} | tee SVNVERSION ; else cat SVNVERSION; fi) + +-DATE:=$(shell date +%Y %B %d) +-RFCDATE:=$(shell date +%a, %d %b %Y %H:%M:%S %z) ++DATE:=$(shell LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH) +%Y %B %d) ++RFCDATE:=$(shell LC_ALL=C date --utc --date=@$(SOURCE_DATE_EPOCH) +%a, %d %b %Y %H:%M:%S %z) + + DEFS= -DAPRXVERSION=\@VERSION_STRING@r$(SVNVERSION)\ \ + -DVARRUN=\$(VARRUN)\ -DVARLOG=\$(VARLOG)\ \ diff --no-dereference -urNad aprx.orig/aprx-2.08.svn593/debian/patches/series aprx/aprx-2.08.svn593/debian/patches/series --- aprx.orig/aprx-2.08.svn593/debian/patches/series2015-08-14 01:44:15.367158322 +0200 +++ aprx/aprx-2.08.svn593/debian/patches/series 2015-08-14 01:54:02.323257600 +0200 @@ -1 +1,2 @@ 01-man-page.patch +02-reproducible-build.patch ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#795438: wims-extra: please make the build reproducible
Source: wims-extra Version: 3.62-6 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: locale X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that wims-extra could not be built reproducibly. Ironically the fixscripts target in the upstream Makefile actually breaks files it generates under non-UTF8 locales when they do not contain regular characters, making them include the tell-tale string Binary file matches.. The attached patch fixes this with grep's --text option. Once applied, wims-extra can be built reproducibly in our reproducible toolchain. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `- diff --git a/Makefile b/Makefile index c8aaa84..c47a930 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ copyfiles: fixscripts: for f in $(SCRIPTS); do \ - grep -v '#!' $(INSTMODULES)/$$f $(INSTMODULES)/$$f.tmp; \ + grep -av '#!' $(INSTMODULES)/$$f $(INSTMODULES)/$$f.tmp; \ mv $(INSTMODULES)/$$f.tmp $(INSTMODULES)/$$f; \ done ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#795443: ocaml: please make the ocamldoc date configurable
Source: ocaml Version: 4.01.0-5 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: toolchain X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that ocamldoc always generates manpages with the current date. The attached patch adds a -man-date argument to ocamldoc to accept any arbitrary string. An alternative would be to accept a UNIX timestamp and then format that but a patch for that would be more invasive. The UNIX manpage format accepts mostly any value here anyway, so this isn't too restrictive. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- ,''`. : :' : Chris Lamb `. `'` la...@debian.org / chris-lamb.co.uk `- diff --git a/ocamldoc/odoc_args.ml b/ocamldoc/odoc_args.ml index be5ce12..5efd6ce 100644 --- a/ocamldoc/odoc_args.ml +++ b/ocamldoc/odoc_args.ml @@ -295,6 +295,7 @@ let default_options = [ -man-mini, Arg.Set Odoc_man.man_mini, M.man_mini ; -man-suffix, Arg.String (fun s - Odoc_man.man_suffix := s), M.man_suffix ; -man-section, Arg.String (fun s - Odoc_man.man_section := s), M.man_section ; + -man-date, Arg.String (fun s - Odoc_man.man_date := s), M.man_date ; ] diff --git a/ocamldoc/odoc_man.ml b/ocamldoc/odoc_man.ml index 7e01f8d..05c1f46 100644 --- a/ocamldoc/odoc_man.ml +++ b/ocamldoc/odoc_man.ml @@ -22,6 +22,7 @@ open Search let man_suffix = ref Odoc_messages.default_man_suffix let man_section = ref Odoc_messages.default_man_section +let man_date = ref (Odoc_misc.string_of_date ~hour: false (Unix.time ())) let man_mini = ref false @@ -720,14 +721,13 @@ class man = (** Generate the man page for the given class.*) method generate_for_class cl = Odoc_info.reset_type_names () ; - let date = Unix.time () in let file = self#file_name cl.cl_name in try let chanout = self#open_out file in let b = new_buf () in bs b (.TH \^cl.cl_name^\ ); bs b !man_section ; -bs b ( ^(Odoc_misc.string_of_date ~hour: false date)^ ); +bs b ( ^(!man_date)^ ); bs b OCamldoc ; bs b (\^(match !Global.title with Some t - t | None - )^\\n); @@ -779,14 +779,13 @@ class man = (** Generate the man page for the given class type.*) method generate_for_class_type ct = Odoc_info.reset_type_names () ; - let date = Unix.time () in let file = self#file_name ct.clt_name in try let chanout = self#open_out file in let b = new_buf () in bs b (.TH \^ct.clt_name^\ ); bs b !man_section ; -bs b ( ^(Odoc_misc.string_of_date ~hour: false date)^ ); +bs b ( ^(!man_date)^ ); bs b OCamldoc ; bs b (\^(match !Global.title with Some t - t | None - )^\\n); @@ -836,14 +835,13 @@ class man = (** Generate the man file for the given module type. @raise Failure if an error occurs.*) method generate_for_module_type mt = - let date = Unix.time () in let file = self#file_name mt.mt_name in try let chanout = self#open_out file in let b = new_buf () in bs b (.TH \^mt.mt_name^\ ); bs b !man_section ; -bs b ( ^(Odoc_misc.string_of_date ~hour: false date)^ ); +bs b ( ^(!man_date)^ ); bs b OCamldoc ; bs b (\^(match !Global.title with Some t - t | None - )^\\n); @@ -914,14 +912,13 @@ class man = (** Generate the man file for the given module. @raise Failure if an error occurs.*) method generate_for_module m = - let date = Unix.time () in let file = self#file_name m.m_name in try let chanout = self#open_out file in let b = new_buf () in bs b (.TH \^m.m_name^\ ); bs b !man_section ; -bs b ( ^(Odoc_misc.string_of_date ~hour: false date)^ ); +bs b ( ^(!man_date)^ ); bs b OCamldoc ; bs b (\^(match !Global.title with Some t - t | None - )^\\n); @@ -1045,14 +1042,13 @@ class man = | Res_const (_,f) - f.vc_name ) in - let date = Unix.time () in let file = self#file_name name in try let chanout = self#open_out file in let b = new_buf () in bs b (.TH \^name^\ ); bs b !man_section ; -bs b ( ^(Odoc_misc.string_of_date ~hour: false date)^ ); +bs b ( ^(!man_date)^ ); bs b OCamldoc ; bs b (\^(match !Global.title with Some t - t | None - )^\\n); bs b .SH NAME\n; diff --git a/ocamldoc/odoc_messages.ml b/ocamldoc/odoc_messages.ml index 2d6327b..7ab6ddc 100644 --- a/ocamldoc/odoc_messages.ml +++ b/ocamldoc/odoc_messages.ml @@ -95,6 +95,8 @@ let man_mini = \tGenerate man pages only for modules, module types, classes\n^ let default_man_section = 3 let man_section = section\n\t\tUse section in man page files ^ (default is
[Reproducible-builds] Bug#795395: adblock-plus: please make the build reproducible
Source: adblock-plus Version: 2.6.9.1+dfsg+4real-1 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that adblock-plus could not be built reproducibly. The attached patch sets the timezone to UTC before calling the build.py script to avoid timezone differences in zip metadata. Once applied, adblock-plus can be builtreproducibly in our current experimental framework. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- Dhole diff -Nru adblock-plus-2.6.9.1+dfsg+4real/debian/changelog adblock-plus-2.6.9.1+dfsg+4real/debian/changelog --- adblock-plus-2.6.9.1+dfsg+4real/debian/changelog2015-06-09 20:00:48.0 +0200 +++ adblock-plus-2.6.9.1+dfsg+4real/debian/changelog2015-08-12 21:00:42.0 +0200 @@ -1,3 +1,10 @@ +adblock-plus (2.6.9.1+dfsg+4real-1.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Fix timezone when running build.py to make the package build reproducibly. + + -- Eduard Sanou dh...@openmailbox.org Wed, 12 Aug 2015 21:00:15 +0200 + adblock-plus (2.6.9.1+dfsg+4real-1) unstable; urgency=medium * Restore buildtools as of 2.6.9 (Closes: #788225) diff -Nru adblock-plus-2.6.9.1+dfsg+4real/debian/rules adblock-plus-2.6.9.1+dfsg+4real/debian/rules --- adblock-plus-2.6.9.1+dfsg+4real/debian/rules2015-06-08 22:17:58.0 +0200 +++ adblock-plus-2.6.9.1+dfsg+4real/debian/rules2015-08-12 20:59:43.0 +0200 @@ -4,7 +4,7 @@ dh $@ --with xul-ext override_dh_auto_build: - python build.py build --release + TZ=UTC python build.py build --release override_dh_auto_install: install-xpi adblockplus*.xpi signature.asc Description: OpenPGP digital signature ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds
[Reproducible-builds] Bug#795394: libitpp: please make the build reproducible
Source: libitpp Version: 4.3.1-4 Severity: wishlist Tags: patch User: reproducible-builds@lists.alioth.debian.org Usertags: timestamps X-Debbugs-Cc: reproducible-builds@lists.alioth.debian.org Hi, While working on the reproducible builds effort [1], we have noticed that libitpp could not be built reproducibly. The attached patch replaces the timestamp in the docs with the latest debian/changelog entry timestamp. Once applied, libitpp can be built reproducibly in our current experimental framework. [1]: https://wiki.debian.org/ReproducibleBuilds Regards, -- Dhole diff -Nru libitpp-4.3.1/debian/changelog libitpp-4.3.1/debian/changelog --- libitpp-4.3.1/debian/changelog 2015-03-01 02:59:24.0 +0100 +++ libitpp-4.3.1/debian/changelog 2015-08-12 23:45:14.0 +0200 @@ -1,3 +1,11 @@ +libitpp (4.3.1-4.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Replace man timestamp by SOURCE_DATE_EPOCH to make the package build +reproducibly. + + -- Eduard Sanou dh...@openmailbox.org Wed, 12 Aug 2015 23:44:45 +0200 + libitpp (4.3.1-4) experimental; urgency=medium * debian/patches: diff -Nru libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff --- libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff 1970-01-01 01:00:00.0 +0100 +++ libitpp-4.3.1/debian/patches/honour-SOURCE_DATE_EPOCH.diff 2015-08-12 23:46:53.0 +0200 @@ -0,0 +1,20 @@ +Description: Honour SOURCE_DATE_EPOCH in man pages + Replace manpage timestamp with SOURCE_DATE_EPOCH only if the variable is + defined, to make the man pages reproducible. +Author: Eduard Sanou dh...@openmailbox.org + +--- libitpp-4.3.1.orig/CMakeLists.txt libitpp-4.3.1/CMakeLists.txt +@@ -155,7 +155,11 @@ set (PACKAGE_STRING ${PACKAGE_NAME} ${P + set (PACKAGE_TARNAME ${PACKAGE}) + set (PACKAGE_URL ) + if (UNIX) +- EXECUTE_PROCESS(COMMAND date +%d/%m/%Y OUTPUT_VARIABLE PACKAGE_DATE) ++ if (DEFINED ENV{SOURCE_DATE_EPOCH}) ++EXECUTE_PROCESS(COMMAND date -u -d @${SOURCE_DATE_EPOCH} +%d/%m/%Y OUTPUT_VARIABLE PACKAGE_DATE) ++ else() ++EXECUTE_PROCESS(COMMAND date +%d/%m/%Y OUTPUT_VARIABLE PACKAGE_DATE) ++ endif() + string(REGEX REPLACE (..)/(..)/..(..).* \\1/\\2/\\3 PACKAGE_DATE ${PACKAGE_DATE}) + else() + set(PACKAGE_DATE ) diff -Nru libitpp-4.3.1/debian/patches/series libitpp-4.3.1/debian/patches/series --- libitpp-4.3.1/debian/patches/series 2015-02-28 02:31:01.0 +0100 +++ libitpp-4.3.1/debian/patches/series 2015-08-12 23:46:00.0 +0200 @@ -1,3 +1,4 @@ 741814-FTBFS-fix.diff itpp-pc-fix.diff delete-sflogo.diff +honour-SOURCE_DATE_EPOCH.diff signature.asc Description: OpenPGP digital signature ___ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds