- Package:
- src:libecoli
- Source:
- src:libecoli
- Submitter:
- Chris Lamb
- Date:
- 2026-10-02 12:21:03 UTC
- Severity:
- normal
- Tags:
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,
Hi Chris, I had uploaded 0.11.7-1 a few days ago with a fix for that reproducibility issue but it seems the upload wasn't processed. rjarry@ringo:~/debian/libecoli debian/latest$ dput ../libecoli_0.11.7-1_source.changes Package libecoli was already uploaded to ftp-master If you want to upload nonetheless, use --force or remove ../libecoli_0.11.7-1_source.ftp-master.upload I'll try again. rjarry@ringo:~/debian/libecoli debian/latest$ dput --force ../libecoli_0.11.7-1_source.changes Uploading libecoli using ftp to ftp-master (host: ftp.upload.debian.org; directory: /pub/UploadQueue/) running allowed-distribution: check whether a local profile permits uploads to the target distribution running protected-distribution: warn before uploading to distributions where a special policy applies running checksum: verify checksums before uploading running suite-mismatch: check the target distribution for common errors running gpg: check GnuPG signatures before the upload Uploading libecoli_0.11.7-1.dsc Uploading libecoli_0.11.7.orig.tar.xz Uploading libecoli_0.11.7-1.debian.tar.xz Uploading libecoli_0.11.7-1_source.buildinfo Uploading libecoli_0.11.7-1_source.changes Do you know what could be blocking?
Hi Chris, I had uploaded 0.11.7-1 a few days ago with a fix for that reproducibility issue but it seems the upload wasn't processed. rjarry@ringo:~/debian/libecoli debian/latest$ dput ../libecoli_0.11.7-1_source.changes Package libecoli was already uploaded to ftp-master If you want to upload nonetheless, use --force or remove ../libecoli_0.11.7-1_source.ftp-master.upload I'll try again. rjarry@ringo:~/debian/libecoli debian/latest$ dput --force ../libecoli_0.11.7-1_source.changes Uploading libecoli using ftp to ftp-master (host: ftp.upload.debian.org; directory: /pub/UploadQueue/) running allowed-distribution: check whether a local profile permits uploads to the target distribution running protected-distribution: warn before uploading to distributions where a special policy applies running checksum: verify checksums before uploading running suite-mismatch: check the target distribution for common errors running gpg: check GnuPG signatures before the upload Uploading libecoli_0.11.7-1.dsc Uploading libecoli_0.11.7.orig.tar.xz Uploading libecoli_0.11.7-1.debian.tar.xz Uploading libecoli_0.11.7-1_source.buildinfo Uploading libecoli_0.11.7-1_source.changes Do you know what could be blocking?
Hi Robin, I've not encountered this particular error myself. However, common issues for why uploads aren't processed are because of GPG signatures and because the target distribution is incorrect. If you jump on the #debian-ftp IRC channel, one of the admins will be able to look at the logs. Best wishes,
It seems like the upload was eventually processed, although the fix
included was only a partial fix.
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
.TH·EC_COMP·3·2026-06-11·"libecoli"·"Libecoli·Programmer's·Manual"
vs.
.TH·EC_COMP·3·2026-06-12·"libecoli"·"Libecoli·Programmer's·Manual"
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...
live well,
vagrant
...
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
We believe that the bug you reported is fixed in the latest version of libecoli, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 1140567@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Robin Jarry <robin@jarry.cc> (supplier of updated libecoli package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org) Format: 1.8 Date: Fri, 02 Oct 2026 11:55:59 +0000 Source: libecoli Architecture: source Version: 0.11.8-1 Distribution: unstable Urgency: medium Maintainer: Robin Jarry <robin@jarry.cc> Changed-By: Robin Jarry <robin@jarry.cc> Closes: 1140567 Changes: libecoli (0.11.8-1) unstable; urgency=medium . * New upstream release. (Closes: #1140567) Checksums-Sha1: e6df16ae79b27d4291b3a0a2a3ee7cf3306ade02 1459 libecoli_0.11.8-1.dsc 19ca80fb54114f759cf740bfa11922b27cd58804 113396 libecoli_0.11.8.orig.tar.xz a11892a624e9a4f5c34decd372a4b742540bed50 5144 libecoli_0.11.8-1.debian.tar.xz b1959baab73ffaf2df2b66420af932ba091e07eb 7883 libecoli_0.11.8-1_source.buildinfo Checksums-Sha256: 691e917a9efe108cd4d84e362a740cc9693a79279bc97ec3c0709f6e82b90518 1459 libecoli_0.11.8-1.dsc e9cf38ffe1127041ce6bd72b4fb7b60d5ac9766d8b3fbbc95bea59fc658ef1e7 113396 libecoli_0.11.8.orig.tar.xz 00a542278108c329a939a4e77f847fb678c0d6e2d44cfaa89d324d0df8ed4191 5144 libecoli_0.11.8-1.debian.tar.xz df213650cf1dba5836c09b4108899679efc1d1670d66767d92f23bb1f5194002 7883 libecoli_0.11.8-1_source.buildinfo Files: 82f5d2f0c5baca66377f16426f004615 1459 libs optional libecoli_0.11.8-1.dsc f2ce953aa8976fe4a9f4b62110ffe78a 113396 libs optional libecoli_0.11.8.orig.tar.xz 80212f3ca17e183c0fef3c1d581d0695 5144 libs optional libecoli_0.11.8-1.debian.tar.xz 6c45675bfeeab780fa14064acf9cb807 7883 libs optional libecoli_0.11.8-1_source.buildinfo -----BEGIN PGP SIGNATURE----- iIUEARYKAC0WIQTYtqmQfDq3IEKLYGhicY4NZm/DNQUCar+dMQ8ccm9iaW5AamFy cnkuY2MACgkQYnGODWZvwzVRgQD7BHinj9BhHnrqH3lorPneRkhPA+ovAmAR++tn 0H00pigA/1Yw9pA71be94lI+2px1+fe9PaFCmJYnfw5jz2PmQxIH =NWCJ -----END PGP SIGNATURE-----