Two questions about build-path reproducibility in Debian

John Neffenger john at status6.com
Tue Mar 5 23:18:57 UTC 2024


On 3/5/24 2:11 PM, Vagrant Cascadian wrote:
>> I have no way to change these choices.
> 
> Then clearly you have not been provided sufficient information,
> configuration, software, etc. in order to reproduce the build!

Rather, I really can't change it or configure it any differently.

Three builds:

(1) A build on Launchpad submitted from their webpage uses this path:

   /build/openjfx/parts/jfx/build/

(2) A remote build on Launchpad submitted locally with this command:

   $ snapcraft remote-build

uses this path:

 
/build/snapcraft-openjfx-64b793849f913c7228cd17db40a05187/parts/jfx/build/

(3) And a build run entirely local with this command:

   $ snapcraft

uses this path:

   /root/parts/jfx/build/

What am I to do?

> That was a fundamentally different issue about having builds not produce
> bit-for-bit identical results still meeting some sort of reproducible
> criterion, as opposed to this discussion is, as I see it, about
> normalizing the path in which the build is performed in order to get
> bit-for-bit identical results.

I understand and recognize the difference you highlight between this 
discussion and the previous one. Yet I would hesitate to call it 
fundamental for the reasons below.

The main reason people didn't want to relax any requirements back in 
October 2022 is because then the pressure is off -- it removes our 
leverage. If you lower our standards, we may never get the upstream 
projects to the goal we really want: fully reproducible builds 
independent of these random differences.

It has sometimes taken me years(!) to get a single reproducible builds 
pull request accepted. If they find out they can be "reproducible" 
without some of these bothersome changes, it just makes my job that much 
more difficult.

I'll make the same argument I made over a year ago:

Reproducible builds is about /blasting/ away all the useless, 
meaningless differences: the timestamps of files created during the 
build, the unsorted order of files in their directories, or the random 
build paths used in a transient container. When the useless differences 
are removed, the meaningful differences can be found.

John


More information about the rb-general mailing list