Adding package information to ELF objects
Adding package information to ELF objects
Posted Nov 3, 2021 5:00 UTC (Wed) by pabs (subscriber, #43278)Parent article: Adding package information to ELF objects
The main thing I've learned from the reproducible builds project is that data about a build should not be stored in the build products for that build, but in the metadata about that build. For eg you shouldn't put the build log in a .rpm but in a .log file beside that RPM, and you shouldn't record the build dependency versions used to build an RPM in the RPM, but in a buildinfo file next to the RPM.
Posted Nov 3, 2021 5:03 UTC (Wed)
by pabs (subscriber, #43278)
[Link]
Posted Nov 3, 2021 5:14 UTC (Wed)
by jhoblitt (subscriber, #77733)
[Link]
Posted Nov 3, 2021 7:43 UTC (Wed)
by NYKevin (subscriber, #129325)
[Link] (1 responses)
Posted Nov 3, 2021 11:46 UTC (Wed)
by bluca (subscriber, #118303)
[Link]
> When is a build reproducible?
> Relevant attributes of the build environment would usually include dependencies and their versions, build configuration flags and environment variables as far as they are used by the build system (eg. the locale).
https://reproducible-builds.org/docs/definition/
If the build environment changes, it is not expected to be able to create the same binary, and that's why it's all recorded in the buildinfo, to be able to reproduce it.
Posted Nov 3, 2021 10:41 UTC (Wed)
by bluca (subscriber, #118303)
[Link]
But even if it did, changing the build toolchain will result in changes in the binary, and that's ok, the installed environment is recorded in the buildinfo for that reason. Reproducible builds are not about minimizing changes in arbitrary ways, they are about being able, given the same input (sources plus toolchain/dependencies), to get the same output. Build deps, compiler, etc are very much part of the input.
Adding package information to ELF objects
Adding package information to ELF objects
Adding package information to ELF objects
Adding package information to ELF objects
> A build is reproducible if given the same source code, build environment and build instructions, any party can recreate bit-by-bit identical copies of all specified artifacts.
Adding package information to ELF objects
