On 2026-03-09 08:21, Steffen Nurpmeso via tz wrote:
Guy Harris via tz wrote in <33322694-56FD-4D92-9365-4B85EA629012@sonic.net>: |On Mar 8, 2026, at 4:41 AM, Dag-Erling Smørgrav <des@des.no> wrote: |> Guy Harris via tz <tz@iana.org> writes: |>> Paul Eggert via tz <tz@iana.org> writes: |>>> On my Ubuntu 25.10 platform, my email client (Thunderbird) uses the |>>> GNU C library to read TZif data. I was talking about that usage, not |>>> any ICU usage. |>> So that's a case of an independent reimplementation of the same |>> C/POSIX API that the tzcode implements. [...] |> |> Yes, an independent reimplementation maintained by [checks notes] some |> guy named Paul Eggert. I bet he sucks. | |And not as independent as I'd originally thrught: | | https://lists.iana.org/hyperkitty/list/tz@iana.org/thread/3TRCQROTP2WT4O\ | KEWC6UKAQ34WOJT5OH/ | |"The GNU C Library (see prep.ai.mit.edu:pub/gnu/glibc-1.05.tar.z) is \ |derived from Olson's 1989 code. Here are its changes:..." ... |The musl C library, used by some *other* Linux distributions, has its \ |own separate implementation.
But to note it started over half a decade before the RFC on some binary file format.
|And then there's the code used by at least a plurality of smartphones \ |on the planet, from the Bionic C library, which looks more directly \ |tzcode-derived. | |I don't know what code Huawei's doing in its collection of various \ |operating systems all of which, at least from the collection of Wikipedia \ |pages about those various operating systems, seem to be based on each \ |other in some cyclic graph, uses, so I can't speak for their smartphones. | |But most of those have, as I noted, constraints stemming from a desire \ |to Look Somewhat Like C and Unix. | |Various *other* programming languages have their own libraries. I don't \ |have a list of which ones are wrappers around the C/POSIX APIs and \ |which are completely independent. Some of the latter, as noted, don't \ |read TZif files.
RFC 8536 came in 2019. 9636 in 2024. There are changes to 8536. There is a new format. There are bugs. There are what i would interpret as "wild" in-code comments. For some practice, see for example [585a0a78f9] of musl's src/time/__tz.c:
explicitly prefer 64-bit/v2 zoneinfo tables
since commit 38143339646a4ccce8afe298c34467767c899f51, the condition sizeof(time_t) > 4 is always true, so there is no functional change being made here. but semantically, the 64-bit tables should always be preferred now, because upstream zic (zoneinfo compiler) has quietly switched to emitting empty 32-bit tables by default, and the resulting backwards-incompatible zoneinfo files will be encountered in the wild.
Most distros try hard to maintain backward compatibility of data and files, so users don't have to figure out some new time zone id setting, although mobiles may have other goals. Most libraries incorporate code changes for reliability on their own release schedules, often derived from BSD releases which stay pretty close to the reference implementation, although they may use their own lower level time functions. -- Take care. Thanks, Brian Inglis Calgary, Alberta, Canada La perfection est atteinte Perfection is achieved non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add mais lorsqu'il n'y a plus rien à retrancher but when there is no more to cut -- Antoine de Saint-Exupéry