From lamby at debian.org Thu Aug 3 09:57:46 2023 From: lamby at debian.org (Chris Lamb) Date: Thu, 03 Aug 2023 09:57:46 +0100 Subject: Bug#1042954: libcerf: please make the build reproducible Message-ID: <169105298674.5326.13468406976024808793@14fd414b6652> Source: libcerf Version: 2.3-2 Severity: wishlist Tags: patch User: reproducible-builds at lists.alioth.debian.org Usertags: buildpath X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org Hi, Whilst working on the Reproducible Builds effort [0], we noticed that libcerf could not be built reproducibly. This is because the manual pages embedded absolute build path in the title of the page. A patch is attached that specifies a specific, deterministic title to pod2man, thus making the build reproducible. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` lamby at debian.org / chris-lamb.co.uk `- -------------- next part -------------- --- a/CMakeLists.txt 2023-08-03 09:45:26.863220289 +0100 --- b/CMakeLists.txt 2023-08-03 09:56:16.000000000 +0100 @@ -74,7 +74,7 @@ add_compile_options(-Wno-sign-compare -fno-omit-frame-pointer) if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "GNU" ) - option(PORTABLE "Build a portable binary without host-specific optimization" ON) + option(PORTABLE "Build a portable binary without host-specific optimization" OFF) if(NOT PORTABLE) add_compile_options(-march=native) endif() --- a/debian/patches/0003-Fix-name-of-manual-pages.patch 1970-01-01 01:00:00.000000000 +0100 --- b/debian/patches/0003-Fix-name-of-manual-pages.patch 2023-08-03 09:56:15.241522363 +0100 @@ -0,0 +1,15 @@ +Description: Make the build reproducible +Author: Chris Lamb +Last-Update: 2023-08-03 + +--- libcerf-2.3.orig/man/CMakeLists.txt ++++ libcerf-2.3/man/CMakeLists.txt +@@ -1,7 +1,7 @@ + function(one_page pname section srcname) + add_custom_command( + OUTPUT "${pname}.${section}" +- COMMAND pod2man -s ${section} -c "libcerf manual" ++ COMMAND pod2man -s ${section} -c "libcerf manual" -n "${pname}" + "${CMAKE_CURRENT_SOURCE_DIR}/${srcname}.pod" + "${CMAKE_CURRENT_BINARY_DIR}/${pname}.${section}" + DEPENDS ${srcname}.pod --- a/debian/patches/series 2023-08-03 09:45:26.863220289 +0100 --- b/debian/patches/series 2023-08-03 09:54:34.393918105 +0100 @@ -1,2 +1,3 @@ 0001-Fix-install-paths-for-.cmake-files.patch 0002-Fix-arch-native-compilation.patch +0003-Fix-name-of-manual-pages.patch From lamby at debian.org Thu Aug 3 10:18:14 2023 From: lamby at debian.org (Chris Lamb) Date: Thu, 03 Aug 2023 10:18:14 +0100 Subject: Bug#1042955: zzzeeksphinx: please make the output reproducible Message-ID: <169105418513.1510810.1178592170272646430@copycat> Source: zzzeeksphinx Version: 1.4.0-1 Severity: wishlist Tags: patch User: reproducible-builds at lists.alioth.debian.org Usertags: toolchain timestamps X-Debbugs-Cc: reproducible-bugs at lists.alioth.debian.org Hi, Whilst working on the Reproducible Builds effort [0], we noticed that zzzeeksphinx was generating output that was not reproducible. This is because the template includes: % if show_sphinx: Created using Sphinx ${sphinx_version|h}. % endif Documentation last generated: ${datetime.datetime.now().strftime("%c")} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This was affecting the reproduciblity of (at least) the mako in Debian. A patch is attached that makes this use SOURCE_DATE_EPOCH instead. [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` lamby at debian.org / chris-lamb.co.uk `- -------------- next part -------------- diff --git a/zzzeeksphinx/themes/zsbase/layout.mako b/zzzeeksphinx/themes/zsbase/layout.mako index 969b6df..dfea0e1 100644 --- a/zzzeeksphinx/themes/zsbase/layout.mako +++ b/zzzeeksphinx/themes/zsbase/layout.mako @@ -1,8 +1,14 @@ ## coding: utf-8 <%! + import os + import time import datetime + now = datetime.datetime.utcfromtimestamp( + int(os.environ.get('SOURCE_DATE_EPOCH', time.time())) + ) + local_script_files = [] default_css_files = [ @@ -307,7 +313,7 @@ withsidebar = bool(toc) and ( Created using Sphinx ${sphinx_version|h}. % endif - Documentation last generated: ${datetime.datetime.now().strftime("%c")} + Documentation last generated: ${now.strftime("%c")}