On 2026-09-30, Vagrant Cascadian wrote:
> 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.
...
>>>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...

Ok, passing "dpkg-deb --root-owner-group" in helper/Makefile.am did the trick!

So, a complete patch that works for me:

diff --git a/debian/rules b/debian/rules
index deb2cfa..9742b75 100755
--- a/debian/rules
+++ b/debian/rules
@@ -38,7 +38,10 @@ override_dh_auto_install:

        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 \
+               --owner=0 --group=0 --numeric-owner \
+               --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

diff --git a/helper/Makefile.am b/helper/Makefile.am
index 934e1e1..b9291b5 100644
--- a/helper/Makefile.am
+++ b/helper/Makefile.am
@@ -24,7 +24,7 @@ temp-%:
        $(MAKE) -C $(PACKAGE) package DESTDIR=$(CURDIR)/temp-$(PACKAGE)

 root-%:
-       dpkg-deb -Zgzip --build temp-$(PACKAGE) $(PACKAGE).deb
+       dpkg-deb -Zgzip --root-owner-group --build temp-$(PACKAGE) 
$(PACKAGE).deb

 clean-local:
        rm -rf $(foreach package,$(packages),temp-$(package))


I would like to perform a Non-Maintainer Upload (NMU) with this patch in
the coming weeks.

Any outstanding concerns?

live well,
  vagrant

Attachment: signature.asc
Description: PGP signature

Reply via email to