Title: distutils creates unreproducible .so files
Type: Stage: resolved
Components: Distutils Versions: Python 3.9
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: bmwiedemann, dstufft, eric.araujo, vstinner
Priority: normal Keywords: patch

Created on 2019-03-15 12:30 by bmwiedemann, last changed 2019-08-01 13:19 by vstinner. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 12341 merged bmwiedemann, 2019-03-15 12:32
Messages (3)
msg337983 - (view) Author: Bernhard M. Wiedemann (bmwiedemann) * Date: 2019-03-15 12:30
While working on reproducible builds for openSUSE, I found countless python modules that come with binary .so files that did not build reproducibly from non-deterministic filesystem readdir order.

One contributing factor is bpo-30461 that will not be fixed.
I found that a simple patch can be done in distutils
instead of fixing an infinite number of current and future python modules.
msg348852 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-08-01 13:18
New changeset 0d30ae1a03102de07758650af9243fd31211325a by Victor Stinner (Bernhard M. Wiedemann) in branch 'master':
bpo-36302: Sort list of sources (GH-12341)
msg348853 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2019-08-01 13:19
I'm not excited about backporting this change to Python 3.8 and older. Python 3.8 also switch to its feature freeze for Python 3.8.0. This change is borderline between bugfix and feature. In case of doubt, I prefer to do nothing.

See concerns in the PR discussion:
Date User Action Args
2019-08-01 13:19:58vstinnersetstatus: open -> closed
versions: + Python 3.9, - Python 3.6, Python 3.7, Python 3.8
messages: + msg348853

resolution: fixed
stage: patch review -> resolved
2019-08-01 13:18:10vstinnersetnosy: + vstinner
messages: + msg348852
2019-03-15 12:32:08bmwiedemannsetkeywords: + patch
stage: patch review
pull_requests: + pull_request12308
2019-03-15 12:30:33bmwiedemanncreate