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