On 2026-05-29, Vagrant Cascadian wrote:
> 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!I have uploaded an NMU to DELAYED/10 with the following changes: diff -Nru piglit-0.0~git20260323.d32d31b6c/debian/changelog piglit-0.0~git20260323.d32d31b6c/debian/changelog --- piglit-0.0~git20260323.d32d31b6c/debian/changelog 2026-03-26 00:58:55.000000000 -0700 +++ piglit-0.0~git20260323.d32d31b6c/debian/changelog 2026-07-15 16:03:53.000000000 -0700 @@ -1,3 +1,12 @@ +piglit (0.0~git20260323.d32d31b6c-1.1) unstable; urgency=medium + + * Non-maintainer upload. + + [ Chris Lamb ] + * Please make the build reproducible (Closes: #1109731). + + -- Vagrant Cascadian <[email protected]> Wed, 15 Jul 2026 16:03:53 -0700 + piglit (0.0~git20260323.d32d31b6c-1) unstable; urgency=medium * Update piglit upstream version to d32d31b6c diff -Nru piglit-0.0~git20260323.d32d31b6c/debian/patches/reproducible-builds.patch piglit-0.0~git20260323.d32d31b6c/debian/patches/reproducible-builds.patch --- piglit-0.0~git20260323.d32d31b6c/debian/patches/reproducible-builds.patch 1969-12-31 16:00:00.000000000 -0800 +++ piglit-0.0~git20260323.d32d31b6c/debian/patches/reproducible-builds.patch 2026-07-15 16:03:53.000000000 -0700 @@ -0,0 +1,32 @@ +From: Chris Lamb <[email protected]> +Date: Tue, 22 Jul 2025 09:13:19 -0700 +X-Dgit-Generated: 0.0~git20260323.d32d31b6c-1 0bbc37274defe775da72013815597b03555bd708 +Subject: Please make the build reproducible (Closes: #1109731). + +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 a/tests/serializer.py b/tests/serializer.py +index 5ee9a15..e2c48e1 100644 +--- a/tests/serializer.py ++++ b/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)) + + diff -Nru piglit-0.0~git20260323.d32d31b6c/debian/patches/series piglit-0.0~git20260323.d32d31b6c/debian/patches/series --- piglit-0.0~git20260323.d32d31b6c/debian/patches/series 1969-12-31 16:00:00.000000000 -0800 +++ piglit-0.0~git20260323.d32d31b6c/debian/patches/series 2026-07-15 16:03:53.000000000 -0700 @@ -0,0 +1 @@ +reproducible-builds.patch live well, vagrant
signature.asc
Description: PGP signature

