On 2025-07-22, Chris Lamb wrote:
> Whilst working on the Reproducible Builds effort [0], we noticed that
> piglit could not be built reproducibly.
>
> This is because when rendering sets in an XML file, it does so via by
> calling repr() on the set object, which results in nondeterminstic
> output.
>
> Patch attached that renders the set as sorted whilst retaining the
> "{a, b, c}" nomenclature.
>
> [0] https://reproducible-builds.org/
...
> diff --git tests/serializer.py tests/serializer.py
> index 5ee9a15..e2c48e1 100644
> --- tests/serializer.py
> +++ tests/serializer.py
> @@ -67,6 +67,8 @@ def _serialize_skips(test, elem):
> if not value:
> value = getattr(test, f, None)
> if value:
> + if isinstance(value, set):
> + value = "{" + repr(sorted(value))[1:-1] + "}"
> et.SubElement(elem, 'option', name=f, value=repr(value))This still appears to be an issue on both reproduce.debian.net: https://reproduce.debian.net/excuses.html?source_name=piglit As well as tests.reproducible-builds.org: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/diffoscope-results/piglit.html I have just confirmed that the proposed patch fixes the issue. I would like to NMU this in the coming weeks to fix this issue; please let me know of any outstanding concerns! live well, vagrant
signature.asc
Description: PGP signature

