Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build_context: improve wheel reproducibility by sorting libs
While tracking a reproducibility issue from maturin's output, we found that the .so file in the output .whl were not ordered the same every time. Order of the external libraries in the .whl comes down to the order `soname_map` is iterated. But, `std::HashMap` does not provide a stable order and that create an unstable order in the wheel. Switch to `std::BTreeMap` which keeps keys sorted and is iterable in a stable order. This can be tested by building current python3-cryptography : ``` SOURCE_DATE_EPOCH=1728915855 maturin build ``` Before this commit, the above give two possible outputs (~50% each), the difference is in the order of libssl and libcrypto. After this commit, the output is reproducible. Signed-off-by: Yoann Congal <[email protected]>
- Loading branch information