On 2026-09-24, Vagrant Cascadian wrote:
> On 2026-06-23, Robin Jarry wrote:
> diff --git a/doc/gen-man-pages.sh b/doc/gen-man-pages.sh
> index 7112ba6..7bc1969 100755
> --- a/doc/gen-man-pages.sh
> +++ b/doc/gen-man-pages.sh
> @@ -35,7 +35,7 @@ for xml in $groups; do
>                 -S "2010" \
>                 -d "$xml_dir" \
>                 -o "$output_dir" \
> -               -D "$(date +%Y-%m-%d ${SOURCE_DATE_EPOCH:+-d 
> @${SOURCE_DATE_EPOCH}})" \
> +               -D "$(date +%Y-%m-%d ${SOURCE_DATE_EPOCH:+-u -d 
> @${SOURCE_DATE_EPOCH}})" \
>                 "$xml" || [ "$?" -gt 128 ]
>  done
>
> The -u (a.k.a. --utc) argument to date is needed for the build to be
> independent of the timezone:
>
>   
> https://tests.reproducible-builds.org/debian/rb-pkg/forky/amd64/diffoscope-results/libecoli.html
>
>   ./usr/share/man/man3/ec_comp.3.gz
...
>   Copyright·(C)·2010-2027·Olivier·Matz,·Robin·Jarry.
>   vs.
>   Copyright·(C)·2010-2026·Olivier·Matz,·Robin·Jarry.
>
> Unfortunately, the Copyright date range at the end of the manpage still
> includes the year it was built and not the year from SOURCE_DATE_EPOCH,
> so if the package is built in a different calendar year, it will not be
> reproducible. I have not figured out a fix for that yet, but am looking
> into it...

I should have waited to send the email! It just required another
argument to doxygen2man:

diff --git a/doc/gen-man-pages.sh b/doc/gen-man-pages.sh
index 7bc1969..3d6710f 100755
--- a/doc/gen-man-pages.sh
+++ b/doc/gen-man-pages.sh
@@ -36,6 +36,7 @@ for xml in $groups; do
                -d "$xml_dir" \
                -o "$output_dir" \
                -D "$(date +%Y-%m-%d ${SOURCE_DATE_EPOCH:+-u -d 
@${SOURCE_DATE_EPOCH}})" \
+               -Y "$(date +%Y ${SOURCE_DATE_EPOCH:+-u -d 
@${SOURCE_DATE_EPOCH}})" \
                "$xml" || [ "$?" -gt 128 ]
 done


I also noticed another part of the original patch that was not included,
which has to do with build paths rather than timestamps. It is fairly
minor as all the test infrastructure no longer tests build path
differences, but it would be nice to include otherwise there are
pointless build paths embedded in your documeentation!

diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index 7d4097d..6f5e489 100644
--- a/doc/Doxyfile.in
+++ b/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


With those three fixes applied (using "date -u" with doxygen2man, and
also passing the -Y argument to doxygen2man, and disabling the
FULL_PATH_NAMES), I think this should become fully reproducible! :)


live well,
  vagrant

Attachment: signature.asc
Description: PGP signature

Reply via email to