* Paul Eggert:
On 7/26/22 04:45, Florian Weimer via tz wrote:
How does this system implement a programming interface that enumerates the TZ rules? The typical way is to use readlink to get the IANA identifier, and then use that to look up the rules in the zic input file (because the compiled blobs lack this information).
It depends on what "TZ rules" means.
If it means the Rule lines in .zi files, that's not intended for end-user consumption. That information is absent from the TZif files output by zic. So I doubt whether you meant that.
There is TzdbZoneRulesCompiler, which I think is used to compile the data which can be accessed through these interfaces: <https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/time/zone/...> There I think ICU has something in this area, too, and the time zone library that was standardized into C++ has a backend based on .zi files, too (for systems which do not install the TZif files).
Distros like FreeBSD should consider installing tzdata.zi as that will make it easier for applications to enumerate all supported Zone and Link names, as well as do other things.
But that file also lists the (abbreviated) rules, and you wrote above that those aren't for end-user consumption. Thanks, Florian