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

Attachment: signature.asc
Description: PGP signature

Reply via email to