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