Source: simgrid Version: 3.11.1-9 Severity: wishlist Tags: patch User: reproducible-bui...@lists.alioth.debian.org Usertags: timestamps
Hi, While working on the “reproducible builds” effort [1], we have noticed that simgrid could not be built reproducibly. The attached patch changes the value of HTML_TIMESTAMP in upstream's doxyfile from YES to NO and it also removes the timestamp from the gzip header of the tarball by setting the environment variable gzip=-9n. Once applied simgrid can be built reproducibly in our current experimental framework. Patching upstream doxyfile is necessary in this case because of the following reasons: 1. Even though the doxygen upstream changed the default value of HTML_TIMESTAMP from YES to NO this does not affect this package because the value of HTML_TIMESTAMP is explicitly set to YES. 2. Upstream's doxyfiles cannot reliably be modified to change the value of HTML_TIMESTAMP during the build process because dh_doxygen is only run after the build already completed and even adding a new dh command cannot solve the problem because there exists no sane and reliable solution to detect the file which will be used as the configuration file for doxygen (it is not always called doxyfile). 3. In case of this source package a patch against upstream is necessary in contrast to a patch against Debian rules because this source package does not call doxygen in debian/rules. Please also consider forwarding this patch upstream. Cheers! akira [1]: https://wiki.debian.org/ReproducibleBuilds
diff -Nru simgrid-3.11.1/debian/changelog simgrid-3.11.1/debian/changelog --- simgrid-3.11.1/debian/changelog 2014-12-13 22:16:07.000000000 +0100 +++ simgrid-3.11.1/debian/changelog 2015-06-23 17:35:13.000000000 +0200 @@ -1,3 +1,10 @@ +simgrid (3.11.1-9.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Set HTML_TIMESTAMP to NO and gzip -n to make package reproducible + + -- akira <marival...@gmail.com> Tue, 23 Jun 2015 17:34:42 +0200 + simgrid (3.11.1-9) unstable; urgency=medium * add some dependencies to really fix #755047: diff -Nru simgrid-3.11.1/debian/patches/series simgrid-3.11.1/debian/patches/series --- simgrid-3.11.1/debian/patches/series 2014-12-13 22:16:07.000000000 +0100 +++ simgrid-3.11.1/debian/patches/series 2015-06-23 17:34:12.000000000 +0200 @@ -5,3 +5,4 @@ no-static.diff lto-gcc-4.9.diff fix-bashism.diff +Set-HTML_TIMESTAMP-to-NO-and-env-gzip--n diff -Nru simgrid-3.11.1/debian/patches/Set-HTML_TIMESTAMP-to-NO-and-env-gzip--n simgrid-3.11.1/debian/patches/Set-HTML_TIMESTAMP-to-NO-and-env-gzip--n --- simgrid-3.11.1/debian/patches/Set-HTML_TIMESTAMP-to-NO-and-env-gzip--n 1970-01-01 01:00:00.000000000 +0100 +++ simgrid-3.11.1/debian/patches/Set-HTML_TIMESTAMP-to-NO-and-env-gzip--n 2015-06-23 18:01:05.000000000 +0200 @@ -0,0 +1,24 @@ +Description: Set HTML_TIMESTAMP to NO and gzip -n to make package reproducible + +--- simgrid-3.11.1.orig/buildtools/Cmake/GenerateDoc.cmake ++++ simgrid-3.11.1/buildtools/Cmake/GenerateDoc.cmake +@@ -48,7 +48,7 @@ if(DOXYGEN_FOUND) + ADD_CUSTOM_COMMAND(TARGET simgrid_documentation + COMMAND ${FIG2DEV_PATH}/fig2dev -Lmap ${CMAKE_HOME_DIRECTORY}/doc/shared/fig/simgrid_modules.fig | perl -pe 's/imagemap/simgrid_modules/g'| perl -pe 's/<IMG/<IMG style=border:0px/g' | ${CMAKE_HOME_DIRECTORY}/tools/doxygen/fig2dev_postprocessor.pl > ${CMAKE_HOME_DIRECTORY}/doc/simgrid_modules.map + COMMAND pwd +- COMMAND ${CMAKE_COMMAND} -E tar czf html/msg-tuto-src.tgz msg-tuto-src/ ++ COMMAND ${CMAKE_COMMAND} -E env GZIP=-9n tar czf html/msg-tuto-src.tgz msg-tuto-src/ + COMMAND ${CMAKE_COMMAND} -E echo "XX Run doxygen" + COMMAND ${DOXYGEN_EXECUTABLE} Doxyfile + COMMAND ${CMAKE_COMMAND} -E echo "XX Generate the index files" +--- simgrid-3.11.1.orig/doc/Doxyfile.in ++++ simgrid-3.11.1/doc/Doxyfile.in +@@ -1007,7 +1007,7 @@ HTML_COLORSTYLE_GAMMA = 80 + # page will contain the date and time when the page was generated. Setting + # this to NO can help when comparing the output of multiple runs. + +-HTML_TIMESTAMP = YES ++HTML_TIMESTAMP = NO + + # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML + # documentation will contain sections that can be hidden and shown after the