On 2026-09-25, Jochen Sprickerhof wrote:
> * Vagrant Cascadian <[email protected]> [2026-09-24 12:33]:
>>On 2026-07-10, Jochen Sprickerhof wrote:
>>> * Chris Lamb <[email protected]> [2021-03-16 09:19]:
>>>>Whilst working on the Reproducible Builds effort [0] we noticed that
>>>>cdebootstrap could not be built reproducibly.
>>>>
>>>>This is the because the embedded .tar file does not sort its entries
>>>>so it inherits the (non-deterministic) filesystem ordering.
>>>>
>>>>Patch attached that adds --sort=name (next to --mtime=[..]) that makes
>>>>the build reproducible for me locally.
>>...
>>>>--- a/debian/rules  2021-03-16 08:54:17.949083106 +0000
>>>>--- b/debian/rules  2021-03-16 08:58:39.291962035 +0000
>>>>@@ -38,7 +38,7 @@
>>>>
>>>>    dh_auto_install --builddir build-tar --destdir debian/tmp
>>>>    strip --remove-section=.comment --remove-section=.note 
>>>> debian/tmp/usr/bin/cdebootstrap
>>>>-   tar -C debian/tmp/usr/bin --mtime=@$(SOURCE_DATE_EPOCH) -cf 
>>>>debian/tmp/cdebootstrap_$(DEB_VERSION)_$(DEB_HOST_ARCH).tar .
>>>>+   tar -C debian/tmp/usr/bin --sort=name --mtime=@$(SOURCE_DATE_EPOCH) -cf 
>>>>debian/tmp/cdebootstrap_$(DEB_VERSION)_$(DEB_HOST_ARCH).tar .
>>>>    mkdir -p debian/cdebootstrap-static/usr/lib/cdebootstrap
>>>>    cp debian/tmp/cdebootstrap_$(DEB_VERSION)_$(DEB_HOST_ARCH).tar 
>>>> debian/cdebootstrap-static/usr/lib/cdebootstrap
>>
>>> I have just tested this and it makes the package reproducible for me. Is
>>> there anything blocking the integration of this?
>>
>>This also requires passing "--owner=0 --group=0 --numeric-owner" to tar
>
> Good point. I had missed that because sbuild always uses a fixed 
> username nowadays so it is less important but still a good idea.
>
>>in debian/rules and setting "Rules-Requires-Root: binary-targets" in
>>debian/control, otherwise the username, groupname and user id and group
>>id also get embedded in both the tarball:
>
> I don't see a need for that and I just tested the change without and 
> build is fine and autopkgtest runs without problem. As we only change a 
> tar call I don't think there is a need.

Well, tests.reproducible-builds.org still shows differences in the
various package data.tar.gz, so it will continue to be unreproducible
there unless that part gets fixed:

  
https://tests.reproducible-builds.org/debian/rb-pkg/forky/amd64/diffoscope-results/cdebootstrap.html

Less important, but my test setup also tests this... :)

With a closer look, it only appears to be the directories in the
data.tar.gz, not the regular files...

> In general we try to avoid R³ binary-targts as it makes reproducing much 
> harder and in case there is a need debputy should be the better option.

Open to other ideas of how to fix it properly. Might try to poke at this
a little more...


live well,
  vagrant

Attachment: signature.asc
Description: PGP signature

Reply via email to