On Mar 8, 2026, at 4:41 AM, Dag-Erling Smørgrav <[email protected]> wrote:
> Guy Harris via tz <[email protected]> writes: >> Paul Eggert via tz <[email protected]> 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/[email protected]/thread/3TRCQROTP2WT4OKEWC6UKAQ34WOJT5OH/ "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:..." and there was, perhaps, *another* Olson-derived implementation originally used on Linux: "Linux's code for timezones (see tsx-11.mit.edu:pub/linux/sources/sbin/timesrc.tar.Z) is also derived from Olson's 1989 code, but it has only the following minor changes: ..." The GNU libc code was, as I remember, originally done by Roland McGrath. Looking at the current tip-of-main-branch code from GNU libc (which is what I think many Linux distributions use), it looks different - and not just in coding style - from the current tzcode version. I don't know who's responsible for those changes. The musl C library, used by some *other* Linux distributions, has its own separate implementation. 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.
