Bug#1117626: reprotest: Use the Continent/City (zoneinfo) syntax for time zone variation

Guillem Jover guillem at debian.org
Wed Oct 8 21:41:17 BST 2025


Hi!

On Wed, 2025-10-08 at 12:33:57 -0700, Soren Stoutner wrote:
> Package: reprotest
> Severity: normal

> I maintain pyinstaller-hooks-contrib, which includes a test (run during build
> and in autopkgtests) that parses the system timezone.  This test currently
> fails Salsa CI reprotest and other reproducibility tests because they modify
> the timezone in the build environment using syntax like GMT+12 instead of the
> Continent/City (zoneinfo) syntax.
> 
> zoneinfo._common.ZoneInfoNotFoundError: 'tzlocal() does not support non-
> zoneinfo timezones like GMT+12. Please use a timezone in the form of
> Continent/City’
> 
> https://salsa.debian.org/python-team/packages/pyinstaller-hooks-contrib/-/jobs/8382666#L6097
> 
> I can see the wisdom in having reproducibility tests check to make sure that
> packages build correctly in different timezones.  My question is:  do we gain
> anything by using the GMT+12 syntax, or could we achieve the same results by
> varying the timezone using the Continent/City format?
> 
> This was discussed on debian-devel in the thread beginning at:
> 
> https://lists.debian.org/debian-devel/2025/10/msg00006.html
> 
> Etc/GMT+12 and Etc/GMT-14 would provide the largest offset (note the
>  difference in the numbers, with the positive offset going up to 12 and the
>  negative offset going up to 14).
> 
> https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
> 
> "The special area of "Etc" is used for some administrative zones, particularly
> for "Etc/UTC" which represents Coordinated Universal Time. In order to conform
> with the POSIX style, those zone names beginning with "Etc/GMT" have their sign
> reversed from the standard ISO 8601 convention. In the "Etc" area, zones west of
> GMT have a positive sign and those east have a negative sign in their name (e.g
>  "Etc/GMT-14" is 14 hours ahead of GMT).
> 
> https://en.wikipedia.org/wiki/Tz_database#Area

As mentioned on the salsa-ci MR at
<https://salsa.debian.org/salsa-ci-team/pipeline/-/issues/512>:

As was mentioned on the list thread, this change would require for tzdata
to be installed everywhere, otherwise the results are bogus (AFAIUI). On
a system with tzdata installed:

,---
$ TZ=GMT+12 date -d '@2147483647'
Mon Jan 18 15:14:07 GMT 2038
$ TZ=Etc/GMT+12 date -d '@2147483647'
Mon Jan 18 15:14:07 -12 2038
`---

On a system without tzdata installed:

,---
$ TZ=GMT+12 date -d '@2147483647'
Mon Jan 18 15:14:07 GMT 2038
$ TZ=Etc/GMT+12 date -d '@2147483647'
Tue Jan 19 03:14:07 Etc 2038
`---

As such, I don't think this should be changed, and if the referenced
package has a problem with this, its test suite should massage its
environment so that it can test what it is supposed to be testing.

Thanks,
Guillem



More information about the Reproducible-builds mailing list