Source: python3.13
Severity: wishlist
X-Debbugs-Cc: reproducible-b...@lists.alioth.debian.org
User: reproducible-bui...@lists.alioth.debian.org
Usertags: randomness

Dear Maintainer,

I'm an occasional volunteer contributor to the Reproducible Builds[1] project,
and noticed recently that python3.13 fails to build reproducibly according to
automated reproducibility testing[2] on Debian.

If I understand correctly, the packaging for src:python3.13 enables link-time
optimization (LTO) with fat link-time objects enabled (the -ffat-lto-objects
flag to GCC).

According to GCC bugreport[3] 66305, enabling this flag causes nondeterministic
output; and the bugthread also provides a potential workaround/resolution for
that, namely to enable the -frandom-seed GCC option[4].

Another detail from the thread is that GCC8 introduced a bug that meant that
the random seed value of zero caused the option to be ignored.

I would like to request that we enable the random-seed GCC option of one (1),
in order to enable deterministic (reproducible) link-time optimized object
files during the build of python3.13-related packages.

I _think_ the relevant line of code to adjust in the buildscript is found at:

  
https://salsa.debian.org/cpython-team/python3/-/blob/f04d169fe2dc39d34b7f983b17ae6a5190714cb6/debian/rules#L235

...however I also note that a subsequent line in the script may also require an
update, to consistently filter out LTO-related flags:

  
https://salsa.debian.org/cpython-team/python3/-/blob/f04d169fe2dc39d34b7f983b17ae6a5190714cb6/debian/rules#L244

I hope (but cannot guarantee) to find time to test this theory using a
triplicate set of builds; once without the adjustment applied (producing what I
expect to be a somewhat-random build output), then with two subsequent builds
with the random-seed enabled (to confirm whether those two additional builds
emit identical binary packages).

Regards,
James

[1] - https://reproducible-builds.org/

[2] - 
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/python3.13.html

[3] - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66305

[4] - 
https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html#index-frandom-seed

Reply via email to