Source: libecoli Version: 0.11.6-1 Severity: wishlist Tags: patch User: [email protected] Usertags: timestamps X-Debbugs-Cc: [email protected]
Hi, Whilst working on the Reproducible Builds effort [0], we noticed that libecoli could not be built reproducibly. This is because the generated manual pages contain the current time. I've attached a patch that will use SOURCE_DATE_EPOCH instead, falling back to the current time if this environment variable is not available. This patch is suitable for forwarding upstream. (I also included a patch that will ensure the package is reproducible regardless of the build directory, although this is strictly optional as we are not doing build dir variation testing at the moment.) [0] https://reproducible-builds.org/ Regards, -- ,''`. : :' : Chris Lamb `. `'` [email protected] / chris-lamb.co.uk `-
--- a/debian/patches/reproducible-build.patch 1969-12-31 16:00:00.000000000 -0800 --- b/debian/patches/reproducible-build.patch 2026-06-22 12:50:31.681359678 -0700 @@ -0,0 +1,15 @@ +Description: Make the build reproducible +Author: Chris Lamb <[email protected]> +Last-Update: 2026-06-22 + +--- libecoli-0.11.6.orig/doc/Doxyfile.in ++++ libecoli-0.11.6/doc/Doxyfile.in +@@ -26,7 +26,7 @@ GENERATE_DEPRECATEDLIST = YES + INTERNAL_DOCS = NO + VERBATIM_HEADERS = NO + ALPHABETICAL_INDEX = NO +-FULL_PATH_NAMES = YES ++FULL_PATH_NAMES = NO + STRIP_FROM_PATH = @TOPDIR@/include + STRIP_FROM_INC_PATH = @TOPDIR@/include + WARN_AS_ERROR = NO --- a/debian/patches/reproducible-manpages.patch 1969-12-31 16:00:00.000000000 -0800 --- b/debian/patches/reproducible-manpages.patch 2026-06-22 13:03:02.331508693 -0700 @@ -0,0 +1,25 @@ +Description: Make the build reproducible +Author: Chris Lamb <[email protected]> +Last-Update: 2026-06-22 + +--- libecoli-0.11.6.orig/doc/gen-man-pages.sh ++++ libecoli-0.11.6/doc/gen-man-pages.sh +@@ -12,6 +12,10 @@ include_dir="$2" + output_dir="$3" + stamp="$4" + ++SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}" ++date_fmt="+%Y-%m-%d" ++build_date=$(date -u -d "@$SOURCE_DATE_EPOCH" "$date_fmt" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "$date_fmt" 2>/dev/null || date -u "$date_fmt") ++ + if [ -z "$xml_dir" ] || [ -z "$include_dir" ] || \ + [ -z "$output_dir" ] || [ -z "$stamp" ]; then + echo "usage: $0 <xml-dir> <include-dir> <output-dir> <stamp-file>" >&2 +@@ -33,6 +37,7 @@ for xml in $groups; do + -H "Libecoli Programmer's Manual" \ + -C "Olivier Matz, Robin Jarry" \ + -S "2010" \ ++ -D "$build_date" \ + -d "$xml_dir" \ + -o "$output_dir" \ + "$xml" || [ "$?" -gt 128 ] --- a/debian/patches/series 1969-12-31 16:00:00.000000000 -0800 --- b/debian/patches/series 2026-06-22 13:03:01.500017021 -0700 @@ -0,0 +1,2 @@ +reproducible-build.patch +reproducible-manpages.patch --- a/doc/Doxyfile.in 2026-06-22 12:40:03.723815462 -0700 --- b/doc/Doxyfile.in 2026-06-22 13:02:52.000000000 -0700 @@ -26,7 +26,7 @@ INTERNAL_DOCS = NO VERBATIM_HEADERS = NO ALPHABETICAL_INDEX = NO -FULL_PATH_NAMES = YES +FULL_PATH_NAMES = NO STRIP_FROM_PATH = @TOPDIR@/include STRIP_FROM_INC_PATH = @TOPDIR@/include WARN_AS_ERROR = NO

